关于在MVVM下的WPF w/DataTable中使用DataGrid

本文关键字:DataTable DataGrid MVVM 下的 WPF | 更新日期: 2023-09-27 18:00:18

(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)

或者还有其他更好的方法吗?

谢谢。

关于在MVVM下的WPF w/DataTable中使用DataGrid

您没有在绑定定义的开始和结束处加括号:

<DataGrid Grid.Column="1" Grid.Row="1" 
ItemsSource="{Binding Path=TblData, Mode=OneWay NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}" 
AutoGenerateColumns="True" />