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