如何在WPF中设置DataGrid的DataSource?

时间:2011-03-22 22:05:39

标签: wpf wpf-controls binding wpfdatagrid

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

4 个答案:

答案 0 :(得分:13)

您可以使用ItemsSource属性:

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

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

listView1.ItemsSource = YourData;

您还可以将ItemsSource属性与其他列表控件(DataGridListBoxComboBox等)一起使用,因为它在{{1}中定义基类。


编辑:如果数据源是ItemsControl,则无法将其直接分配给DataTable,因为它没有实现ItemsSource,但您可以通过绑定来实现:

IEnumerable

答案 1 :(得分:8)

这是一个简单的例子:

XAML部分

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

C#部分

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

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

现在您的DataGrid将填充您的DataTable

答案 2 :(得分:1)

GridView是一个视图,而不是一个独立的控件,据我所知,你通常会将它用作ListView的视图。在WPF中,数据填充的属性称为ItemsSource,您可能希望使用ListViewDataGrid以此方式显示数据。

答案 3 :(得分:0)

您可以使用以下两种方式将数据表绑定到WPF中的datagrid。

 datagrid.ItemSource = mydt.DefaultView();

 datagrid.DataContext = mydt.DefaultView();