如何在WPF中设置DataGrid的DataSource?

Mig*_*uel 9 wpf binding wpf-controls wpfdatagrid

我需要将数据库中的表设置为WPF中GridGrid的DataSource.在Windows窗体中调用该属性,DataSource但在WPF中不存在这样的属性,所以我该怎么做呢?

Tho*_*que 14

您可以使用该ItemsSource属性:

<ListView ItemsSource="{Binding YourData}">
    <ListView.View>
        <GridView>
            <!-- The columns here -->
        </GridView>
    </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢使用代码隐藏而不是绑定,只需为其命名ListViewItemsSource在代码中设置属性:

listView1.ItemsSource = YourData;
Run Code Online (Sandbox Code Playgroud)

您也可以使用ItemsSource其他列表控件属性(DataGrid,ListBox,ComboBox等),因为它是在定义的ItemsControl基类.


编辑:如果数据源是a DataTable,你不能直接分配它,ItemsSource因为它没有实现IEnumerable,但你可以通过绑定来完成:

listView1.SetBinding(ItemsControl.ItemsSourceProperty, new Binding { Source = YourData });
Run Code Online (Sandbox Code Playgroud)


小智 9

这是一个简单的例子:

XAML部分:

<DataGrid Name="dataGrid1" Width="866" Height="auto" HorizontalAlignment="Left" VerticalAlignment="Top" />
Run Code Online (Sandbox Code Playgroud)

C#部分:

... [阅读和填写表格的代码] ......

da.Fill(myDataTable);
dataGrid1.ItemsSource = myDataTable.DefaultView;
Run Code Online (Sandbox Code Playgroud)

现在,您的DataGrid将填充您的DataTable