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

时间:2015-08-07 12:22:46

标签: c# wpf xaml mvvm datagrid

我使用MVVM模式开发WPF应用程序。我想从Datatable中向DataGrid显示动态列。

我添加了代码来显示它但它无法正常工作。数据表填充了数据,但在数据网格中,数据没有显示。

XAML:

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

视图模型:

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;
}         

1 个答案:

答案 0 :(得分:1)

您已在AutoGenerateColumns="False"上设置了DataGrid,但您尚未定义任何列。

尝试更改为AutoGenerateColumns="True"