2012-04-10 18 views
1

データストアとしてSQL Server CE 3.5を使用するエンティティデータモデルベースのアプリケーションがあります。ADO.netエンティティデータモデルを使用したDataGridデータバインディング

お客様にはがあり、それぞれ注文があります。これは単純化された概要である:私のWPFウィンドウで

enter image description here

、私は自分の名前と住所を、すべての顧客の一覧を表示したいと思いれるDataGridを挿入します。このような何か:

enter image description here

は、だから私は、このXAML書いた:

<DataGrid Grid.Row="0" Name="customersDataGrid" AutoGenerateColumns="False" CanUserResizeColumns="True" AllowDrop="True" Drop="Window_Drop" DragEnter="Window_DragEnter"> 
    <DataGrid.Columns> 
     <DataGridTemplateColumn Header="Name" Width="Auto" IsReadOnly="True" /> 
     <DataGridTemplateColumn Header="Address" Width="Auto" IsReadOnly="True" /> 
    </DataGrid.Columns> 
</DataGrid> 

をしかし、今、どのように私は私のデータモデルでは、顧客の財産Nameでカラムを接続することができますか?

答えて

2

あなたがDataGridTemplateColumnを使用しているとして、あなたはそこのDataTemplateを置くことができます。..(注:「データ:」を必要としない場合があります。接頭辞)

<data:DataGridTemplateColumn Header="Name"> 
     <data:DataGridTemplateColumn.CellTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Name}"> 
      </DataTemplate> 
     </data:DataGridTemplateColumn.CellTemplate> 
     <data:DataGridTemplateColumn.CellEditingTemplate> 
      <DataTemplate> 
       <TextBox Text="{Binding Name}"> 
      </DataTemplate> 
     </data:DataGridTemplateColumn.CellEditingTemplate> 
    </data:DataGridTemplateColumn> 
+0

は、あなたの答えをありがとう!私は試みましたが、それはまだ動作しません。エラーも例外もありません。 XAMLにいくつかの点で、使用するコンテキストは何か_を伝える必要がありますか?どうしたらいいですか? – Dev

+1

@Devそれが動作しない理由は、datagridviewが実際にデータソースにバインドされていないためです。データベースに問い合わせ、結果を 'List 'に入れる必要があります。このリストをコードのプロパティとして公開し、xamlのデータグリッド内のコード 'DataGrid.ItemsSource = {Binding ListOfCustomers} 'を使ってこのリストをバインドします。 WPFアプリケーションでMVVMというフレームワークを使用することをお勧めします。このフレームワークを使用すると、コードはすばらしいものになります。 http://msdn.microsoft.com/en-us/magazine/dd419663.aspx –

+0

ありがとう!私はプロパティcustomersList'(プライベートリスト ')を作成しました。私は 'Window_Loaded'メソッドでそれを評価しました。 'customersList'に正しい値が入っていることを確認しました。次に、XAMLの 'DataGrid'タグに' ItemsSource = "{Binding customersList}"という属性を追加しました。私は何かを忘れた? – Dev

関連する問題