【发布时间】:2013-02-20 09:16:15
【问题描述】:
(C#) 最近,我试图在按下 .xaml 中的按钮时将 SQL 结果从 Access MDB 显示到 DataGrid。到目前为止,我成功地使用 ICommand 触发 SQL 并在 DataTable 中返回结果。我还使用 PropertyChangedEventHandler 来通知 GUI。但是,.xaml 中的 DataGrid 不会刷新。 (数据网格外观保持不变)
在 ViewModel 中,我用下面的方式通知 GUI:
public DataTable TblData
{
get { return _dataTable; }
set
{
_dataTable = value;
RaisePropertyChanged("TblData");
}
}
在 .xaml.cs 中,我将 DataContext 设置为我的 ViewModel:
public MainWindow()
{
InitializeComponent();
this.DataContext = _dataViewModel;
}
在 .xaml 中,我已经将 DataGrid 绑定到 DataTable:
<DataGrid Grid.Column="1" Grid.Row="1"
ItemsSource="Binding Path=TblData, Mode=OneWay NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged"
AutoGenerateColumns="True" />
知道我应该如何解决吗? (使用 MVVM)
或者还有其他更好的方法吗?
谢谢。
【问题讨论】:
-
表格的列数和类型会随着时间变化吗?
-
不,它只是在按下按钮时从MDB加载静态数据。
标签: c# wpf mvvm datagrid datatable