DataGrid绑定无法使用DataView

本文关键字:DataView 绑定 DataGrid | 更新日期: 2023-09-27 18:23:55

我试图在WPF中的DataGrid中显示我的数据库,但我就是找不到让它工作的方法。我使用DataTable和DataView将数据获取到DataGrid中,但它总是以XamlParseException结束,即使DataView中充满了来自数据库的信息。我正在使用Visual Studio 2015。

有人知道问题可能在哪里吗?

这是我使用DataGrid的WPF的一部分(目前只使用id参数):

`    
xmlns:vm="clr-namespace:FilmovaDatabaze.ViewModels"
<Window.Resources>
        <vm:MainVm x:Key="MainVm"/>
</Window.Resources>
<DataGrid ItemsSource="{Binding Source={StaticResource MainVm}, Path=DataView}">
            <DataGridTextColumn Header="ID" Binding="{Binding id}"/>
        </DataGrid>`

这是ViewModel:中代码的一部分

private DataView _dataView;
private DataTable _data;
public DataView DataView { get { return _dataView; } set { _dataView = value; this.ChangeProperty("DataView"); } }
public MainVM(){
            _enabledChanges = true;
            _data = new DataTable();
            _data = Db.GetTable("SELECT * FROM movies JOIN directors ON directors.id = movies.director_id", "id ASC");
            _dataView = new DataView(_data);}

DataGrid绑定无法使用DataView

终于找到了解决方案。XAML中缺少一个层。它必须看起来像这样:

<DataGrid ItemsSource="{Binding Source={StaticResource MainVm}, Path=DataView}">
<DataGrid.Columns>
            <DataGridTextColumn Header="ID" Binding="{Binding id}"/>
</Datagrid.Columns>
        </DataGrid>