【发布时间】:2015-10-19 16:30:57
【问题描述】:
我一直在尝试用新的 DataTable 替换由 DataGrid 控件自动生成的整个表格。
我之前看过this question,但我一直在尝试避免在我的视图模型类中引用 UI 元素(或者作为最后的手段将代码添加到 Mainwindow.xaml.cs)。
首先,我将 DataGrid 的 ItemsSource 绑定到 Viewmodel 中的 DataView 属性:
<DataGrid Grid.Row="1" Grid.Column ="1" ItemsSource="{Binding DisplayView}"/>
private DataView displayView;
public DataView DisplayView
{
get { return displayView; }
set { displayView = value; }
}
我还有一种方法可以将 SQL 表格式化为适当的 DataTable,然后我将其分配给绑定到网格的 DataView。
DisplayView = dtCloned.DefaultView;
当我在构造函数中调用此方法时,表格会在执行时填满。
在运行时调用它会以相同的格式创建一个新表,但将其分配给 DataView 属性不会重新加载 DataGrid 以显示新表;我哪里错了?
【问题讨论】:
-
您的视图模型需要实现
INotifyPropertyChanged并通知DisplayView属性的更改。