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);}
终于找到了解决方案。XAML中缺少一个层。它必须看起来像这样:
<DataGrid ItemsSource="{Binding Source={StaticResource MainVm}, Path=DataView}">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding id}"/>
</Datagrid.Columns>
</DataGrid>