web-dev-qa-db-ja.com

WPFでDataGridのDataSourceを設定する方法

データベースのテーブルをWPFのGridGridのDataSourceに設定する必要があります。 WindowsフォームではこのプロパティはDataSourceと呼ばれますが、WPFではそのようなプロパティは存在しないため、どうすればそれを実行できますか?

11
Miguel

ItemsSource プロパティを使用できます。

<ListView ItemsSource="{Binding YourData}">
    <ListView.View>
        <GridView>
            <!-- The columns here -->
        </GridView>
    </ListView.View>
</ListView>

バインディングではなく分離コードを使用する場合は、ListViewに名前を付けて、コードでItemsSourceプロパティを設定します。

listView1.ItemsSource = YourData;

ItemsSourceプロパティは他のリストコントロール(DataGridListBoxComboBoxなど)でも使用できます。これは、ItemsControl基本クラス。


編集:データソースがDataTableの場合、ItemsSourceを実装していないため、IEnumerableに直接割り当てることはできませんが、バインディングを介して実行できます。 :

listView1.SetBinding(ItemsControl.ItemsSourceProperty, new Binding { Source = YourData });
14
Thomas Levesque

これは簡単な例です:

XAML部分

<DataGrid Name="dataGrid1" Width="866" Height="auto" HorizontalAlignment="Left" VerticalAlignment="Top" />

C#パーツ

... [テーブルを読み取って入力するためのコード] ...

da.Fill(myDataTable);
dataGrid1.ItemsSource = myDataTable.DefaultView;

そして今、あなたのDataGridはあなたのDataTableで満たされます

10
Menard Laval

GridViewはビューであり、私が知る限りスタンドアロンのコントロールではありません。通常、ListViewのビューとして使用します。 WPFでは、データ入力のプロパティはItemsSourceと呼ばれます。おそらく、ListViewまたはDataGridを使用して、データをそのように表示します。

2
H.B.

以下の両方の方法を使用して、データテーブルをWPFのデータグリッドにバインドできます。

 datagrid.ItemSource = mydt.DefaultView();

 datagrid.DataContext = mydt.DefaultView();
0
Subhash Saini