c# - 将数据表中选定的列绑定(bind)到数据网格中

标签 c# wpf visual-studio-2010 xaml

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

相关文章:

c# - 在 Task.Run 或 TaskFactory.StartNew 仍在工作时更新 UI

WPF框架源问题

c# - 进程退出/关闭/终止后关闭第三方SDK

c# - 如何在 Visual Studio 中测试 API 服务

c# - OpenXML SDK 2.5 不可读的内容

c# - WPF - 从 DataTemplate 创建 UI 对象

c# - Visual Studio 2010/2012 : 32 or 64 bit?

c# - 映射 Fluent NHibernate,其中主键也应该是外键

c# - 通知 ViewModel 静态模型的变化

c# - 有人举例说明如何在 SQL Server 2008 中插入 CLR?