将数据表中的选定列绑定到数据网格中

本文关键字:数据 数据网 绑定 网格 数据表 | 更新日期: 2023-09-27 18:29:25

My Sql存储过程返回一个DataTable"dt";。如何使用该数据表中的Selected列并将它们绑定到DataGrid中的指定值?

我目前正在使用这个:

 DataView view = new DataView(dt);
 DataTable cat = view.ToTable(true,"categoryID", "category");

如何绑定DataGrid中的类别ID和类别列?

以下是我的DataGrid专栏:

<DataGrid.Columns>
    <DataGridCheckBoxColumn Binding="{Binding}" Header="        " />
    <DataGridTextColumn Header="Category" />
</DataGrid.Columns>

将数据表中的选定列绑定到数据网格中

这里应该使用MVVM方法。

DataTable应由ViewModel管理,并且可以通过ViewModel的属性使您的视图可以使用要显示使用的列。

[EDIT]

你需要投资的工作量取决于你想要实现的目标。如果只想显示值,那么将DataTable转换为ObservableCollection,然后将ObservableCollection绑定到UI元素就足够了。

或者,您可以将DataTable直接绑定到DataGrid并设置AutoGenerateColumns="True"属性。

你可以在这里找到一个例子:在WPF&MVVM

[EDIT 2]

简而言之,ViewModel是WPF窗口应该可见的类。它包含一些公共属性,当底层数据通过实现INotifyPropertyChanged接口发生更改时,这些属性会向View发出信号。这种方法的优点是视图与使用实际数据的业务逻辑解耦。它不需要手动刷新,而是由ViewModel自动通知。WPF是为了利用MVVM模式而设计的,所以如果你深入研究它,你会发现使用它非常有意义。

它使使用WPF变得非常容易,并有助于构建类职责。

关于如何使用MVVM(模型-视图-视图模型)方法以及如何使用ViewModels的一个很好的教程可以在MSDN的这篇文章中找到:WPF Apps With the Model View ViewModel Design Pattern。这对我理解MVVM有很大帮助。