使用MVVM从Datatable显示WPF DataGrid中的动态列

本文关键字:动态 DataGrid WPF MVVM Datatable 显示 使用 | 更新日期: 2023-09-27 18:07:03

我正在使用MVVM模式开发一个WPF应用程序。我想从Datatable中显示DataGrid的动态列。

我添加了代码来显示它,但它不工作。Datatable被数据填充,但在datagrid中,数据不显示。

XAML:

 <DataGrid Grid.Row="1" AutoGenerateColumns="False" GridLinesVisibility="All" Foreground="Black" ItemsSource="{Binding ItemSource, Mode=OneWay, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}"  IsReadOnly="True" />

ViewModel:

private DataView _itemSource;
public DataView ItemSource
{
    get { return _itemSource; }
    set
    {
        _itemSource = value;
        OnPropertyChanged("ItemSource");
    }
}
public async Task PopulateData(string queryText)
{
    var dt = await CustomReportQueryDAO.GetCustomReportQueryResult("select * from [Person]");
    ItemSource = dt.DefaultView;
}         

使用MVVM从Datatable显示WPF DataGrid中的动态列

您在DataGrid上设置了AutoGenerateColumns="False",但是您没有定义任何列。

尝试更改为AutoGenerateColumns="True"