XAML 将所选列从DataTable绑定到DataGrid

1cosmwyk  于 2023-04-27  发布在  其他
关注(0)|答案(1)|浏览(134)

我的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>
e5nqia27

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有很大帮助。

相关问题