【发布时间】:2011-12-22 01:48:59
【问题描述】:
我有一个问题,我相信一些简单的事情,只是无法掌握它。我的窗口数据上下文有一个视图模型。在它上面我有一个从数据库查询中填充的私有“DataTable”。没问题。我有一个返回 DataTable.DefaultView 的公共 DataView 属性 {get;set;}。我将表单上的 DataGrid 绑定到视图模型上 DataView 属性的路径并运行表单。没问题,上来,列显示正常,点击行,没问题。
现在,问题来了。单击我认为自动处理数据排序的标题,它会出现一个错误,
'MyTable' type does not have property named '[MyColumn]', so cannot sort data collection.
这里令人困惑的部分。绑定到源自 MyTable.DefaultView 的 VIEW (MyTableView),并且它确实有一个列“MyColumn”,因为它在网格中正确显示。我错过了什么。
澄清一下,这是视图模型中的一些 xaml 和代码
XAML
<DataGrid AutoGenerateColumns="False"
Name="dataMyData"
ItemsSource="{Binding Path=MyTableView, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}"
SelectedItem="{Binding Path=MyCurrentViewRecord, Mode=TwoWay}" >
<DataGrid.Columns>
<DataGridTextColumn Header="#" Binding="{Binding Path=[MyRecord], NotifyOnSourceUpdated=True}" />
<DataGridTextColumn Header="MyColumn" Binding="{Binding Path=[MyColumn],NotifyOnSourceUpdated=True}"/>
</DataGrid.Columns>
</DataGrid>
C#
PRIVATE DataTable MyTable;
public DataView MyTableView
{
get { return MyTable.DefaultView; }
}
【问题讨论】:
标签: wpf sorting binding datagrid