2012-02-24 18 views
1

SQLサーバーによってデータオブジェクトが設定されています。私はエントリのリストから行を選択し、それらをグリッド外のテキストボックスに入力しようとしています。私は、グリッドを作成する以外に、クエリ結果を管理可能なデータに変換する方法を見つけることができないようです。複数のテキストボックスにSQLクエリ結果を渡す

C#

MoviesEntities dataEntities = new MoviesEntities(); 
ObjectQuery<MovieTable> _movies = dataEntities.MovieTables; 

var query = 
    from MovieTable in _movies 
    where MovieTable.Title == MMEM.MovieTitle 
    select MovieTable.id; 
    string result = Convert.ToString(query); //or something?? 

XAML:

<Window x:Class="MovieApp.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" 
    Height="650" 
    Width="525" 
    ResizeMode="NoResize" 
    WindowStartupLocation="CenterScreen" 
    xmlns:vm="clr-namespace:MovieApp"> 
<Window.Resources> 
    <vm:MovieAppViewModel x:Key="MovieAppViewModel"/> 
</Window.Resources> 
<StackPanel x:Name="RootStackPanel" DataContext="{StaticResource MovieAppViewModel}"> 
    <Grid HorizontalAlignment="Center" Height="99" Width="440"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="Auto"/> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="Auto"/> 
     </Grid.RowDefinitions> 
     <TextBlock Grid.Column="0" Text="Movie Title" Margin="30 0 30 0" HorizontalAlignment="Center" FontWeight="Heavy"/> 
     <TextBlock Grid.Column="1" Text="Rating" Margin="30 0 30 0" HorizontalAlignment="Center" FontWeight="Heavy"/> 
     <TextBlock Grid.Column="2" Text="Stars" Margin="30 0 30 0" HorizontalAlignment="Center" FontWeight="Heavy"/> 
     <TextBlock Grid.Column="3" Text="Release Year" Margin="30 0 30 0" HorizontalAlignment="Center" FontWeight="Heavy"/> 
     <TextBox Grid.Column="0" TextAlignment="Center" Text="{Binding MMEM.MovieTitle}" IsEnabled="{Binding MMEM.IsEditable}" Grid.Row="1" MaxLength="50" Width="100"/> 
     <TextBox Grid.Column="1" TextAlignment="Center" Text="{Binding MMEM.Rating}" IsEnabled="{Binding MMEM.IsEditable}" Grid.Row="1" MaxLength="5" Width="55"/> 
     <TextBox Grid.Column="2" TextAlignment="Center" Text="{Binding MMEM.Stars}" IsEnabled="{Binding MMEM.IsEditable}" Grid.Row="1" MaxLength="5" Width="20"/> 
     <TextBox Grid.Column="3" TextAlignment="Center" Text="{Binding MMEM.ReleaseYear}" IsEnabled="{Binding MMEM.IsEditable}" Grid.Row="1" MaxLength="20" Width="100"/> 
    </Grid> 
    <Button Content="Edit Mode" Command="{Binding ToggleCommand}"/> 
    <DataGrid 
     Width="Auto" 
     SelectionMode="Extended" 
     IsReadOnly="True" 
     AutoGenerateColumns="False" 
     ItemsSource="{Binding MMLM.MoviesList}" 
     DataContext="{StaticResource MovieAppViewModel}"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Width="200" Header="Title" Binding="{Binding Title}"/> 
      <DataGridTextColumn Width="100" Header="Rating" Binding="{Binding Rating}"/> 
      <DataGridTextColumn Width="100" Header="Stars" Binding="{Binding Stars}"/> 
      <DataGridTextColumn Width="93" Header="Release Year" Binding="{Binding ReleaseYear}"/> 
     </DataGrid.Columns> 
    </DataGrid> 
</StackPanel> 

私は、文字列に行を解析し、テキストボックスを移入するよりも効率的な方法があるという仮定の下で、しかしでいますこの点私は私が得ることができるものを取るよ!

入力ありがとうございました!!!!

+0

ポストあなたのXAML - グリッドとテキストボックスの両方のコード。グリッドをデータソースにバインドし、それを自動的に(半)データにすることができるはずです。 – ChrisF

+0

グリッドは自動的に入力されますが、選択した行のデータを上記のTextBoxに取り込みたいとします。それがあなたの意図したものかどうかは分かりませんが、私はその部分を持っています。ありがとう入力 – Josh

+0

グリッドから選択した行を取得できるはずです(私はSilverlightを使用しますので、WPFの正確な構文を高速化することはできません)ので、オブジェクトを与えることができます - MovieEntity?この場合。 – ChrisF

答えて

1

は、名前だけthedatagrid例えばmasterDG詳細に続いて

Binding ElementName=masterDG, path=SelecedItem.Title 
関連する問題