データベースのテーブルをWPFのGridGridのDataSourceに設定する必要があります。 WindowsフォームではこのプロパティはDataSource
と呼ばれますが、WPFではそのようなプロパティは存在しないため、どうすればそれを実行できますか?
ItemsSource
プロパティを使用できます。
<ListView ItemsSource="{Binding YourData}">
<ListView.View>
<GridView>
<!-- The columns here -->
</GridView>
</ListView.View>
</ListView>
バインディングではなく分離コードを使用する場合は、ListView
に名前を付けて、コードでItemsSource
プロパティを設定します。
listView1.ItemsSource = YourData;
ItemsSource
プロパティは他のリストコントロール(DataGrid
、ListBox
、ComboBox
など)でも使用できます。これは、ItemsControl
基本クラス。
編集:データソースがDataTable
の場合、ItemsSource
を実装していないため、IEnumerable
に直接割り当てることはできませんが、バインディングを介して実行できます。 :
listView1.SetBinding(ItemsControl.ItemsSourceProperty, new Binding { Source = YourData });
これは簡単な例です:
XAML部分:
<DataGrid Name="dataGrid1" Width="866" Height="auto" HorizontalAlignment="Left" VerticalAlignment="Top" />
C#パーツ:
... [テーブルを読み取って入力するためのコード] ...
da.Fill(myDataTable);
dataGrid1.ItemsSource = myDataTable.DefaultView;
そして今、あなたのDataGridはあなたのDataTableで満たされます
GridView
はビューであり、私が知る限りスタンドアロンのコントロールではありません。通常、ListView
のビューとして使用します。 WPFでは、データ入力のプロパティはItemsSource
と呼ばれます。おそらく、ListView
またはDataGrid
を使用して、データをそのように表示します。
以下の両方の方法を使用して、データテーブルをWPFのデータグリッドにバインドできます。
datagrid.ItemSource = mydt.DefaultView();
datagrid.DataContext = mydt.DefaultView();