我的SQL存储过程返回一个DataTable
“dt”。我如何使用该数据表中的Selected列并将它们绑定到DataGrid
中的指定值?
我目前正在使用这个:
DataView view = new DataView(dt);
DataTable cat = view.ToTable(true,"categoryID", "category");
如何绑定DataGrid
中的category ID和category列?
以下是我的DataGrid
列:
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding}" Header=" " />
<DataGridTextColumn Header="Category" />
</DataGrid.Columns>
1条答案
按热度按时间e5nqia271#
这里应该使用MVVM方法。
DataTable应该由
ViewModel
管理,您希望显示使用的列可以通过ViewModel
的属性提供给您的视图。[编辑]
您需要投入的工作量取决于您想要实现的目标。如果您只想显示值,那么将
DataTable
转换为ObservableCollection
,然后将ObservableCollection
绑定到UI元素就足够了。或者,您可以将
DataTable
直接绑定到DataGrid
并设置AutoGenerateColumns="True"
属性。你可以在这里找到一个例子:Bind Datatable with DataGrid in WPF & MVVM
[编辑2]**
总之a ViewModel是应该对WPF窗口可见的类。它包含一些公共属性,当底层数据通过实现
INotifyPropertyChanged
接口发生更改时,这些属性会向View发出信号。这种方法的优点是,View与处理实际数据的业务逻辑分离。它不需要手动刷新,而是由ViewModel自动通知。WPF是为使用MVVM模式而精心设计的,因此如果深入研究它,您会发现使用它是非常有益的。它使得使用WPF非常容易,并有助于构建类的职责。
关于如何使用MVVM(模型-视图-视图模型)方法以及如何使用视图模型的很好的教程可以在这篇MSDN文章中找到:WPF Apps With The Model-View-ViewModel Design Pattern。这对我理解MVVM有很大帮助。