【问题标题】:Bind selected column from datatable into datagrid将数据表中的选定列绑定到数据网格中
【发布时间】:2012-04-13 22:22:00
【问题描述】:

我的 Sql 存储过程返回一个数据表“dt”。我将如何使用该数据表中的选定列并将它们绑定到我的数据网格中的指定值。

我正在使用这个

 DataView view = new DataView(dt);
            DataTable cat = view.ToTable(true,"categoryID", "category");

如何在我的数据网格中绑定类别 ID 和类别列

这是我的数据网格列

<DataGrid.Columns>
                <DataGridCheckBoxColumn Binding="{Binding}" Header="        " />
                <DataGridTextColumn Header="Category" />
            </DataGrid.Columns>

【问题讨论】:

    标签: c# wpf visual-studio-2010 xaml


    【解决方案1】:

    您应该在这里使用MVVM 方法。

    DataTable 应该由ViewModel 管理,并且您要显示使用的列可以通过ViewModel 的属性提供给您的视图。

    [编辑]

    您需要投入的工作量取决于您想要实现的目标。如果您只想显示值,将DataTable 转换为ObservableCollection 然后将ObservableCollection 绑定到UI 元素可能就足够了。

    或者,您可以将DataTable 直接绑定到您的DataGrid 并设置AutoGenerateColumns="True" 属性。

    你可以在这里找到一个例子:Bind Datatable with DataGrid in WPF & MVVM

    [编辑 2]

    简而言之,ViewModel 是应该对您的 WPF 窗口可见的类。它包含一些公共属性,通过实现INotifyPropertyChanged 接口,当底层数据发生更改时向视图发出信号。 这种方法的优点是视图与处理实际数据的业务逻辑分离。它不需要手动刷新,而是由 ViewModel 自动通知。 WPF 被强烈设计为利用 MVVM 模式,所以如果你深入研究它,你会发现使用它非常有益。

    它使使用 WPF 变得非常容易,并有助于构建类职责。

    有关如何使用 MVVM(模型-视图-视图模型)方法以及如何使用 ViewModel 的精彩教程可以在此 MSDN 文章中找到:WPF Apps With The Model-View-ViewModel Design Pattern。这对我理解 MVVM 帮助很大。

    【讨论】:

    • 能否请您详细说明一下。我将如何使用视图模型
    • 嗨@deception1,我添加了更多信息/链接。这些将帮助您开始使用 ViewModels 和 MVVM。我强烈建议您查看 MVVM 模式,因为它发挥了它的优势,尤其是在 WPF 中使用数据绑定时,这正是您想要在这里做的。你会喜欢的。 :-)
    猜你喜欢
    • 2012-06-13
    • 2016-11-13
    • 2015-08-07
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 2011-04-07
    • 2011-01-31
    相关资源
    最近更新 更多