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