将所选列从datatable绑定到datagrid

时间:2012-03-30 08:31:02

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

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

1 个答案:

答案 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很多。

相关问题