【问题标题】:About using DataGrid in WPF w/ DataTable under MVVM关于在 MVVM 下的 WPF w/ DataTable 中使用 DataGrid
【发布时间】: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


【解决方案1】:

你没有在绑定定义的开头和结尾加上括号:

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

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 2013-03-24
    • 2018-02-07
    • 2012-03-06
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多