datagrid头排序错误绑定到dataview
问题描述:
我有一个问题,并相信一些简单的事情,只是无法控制它。我的窗口的数据上下文有一个View模型。在它上面我有一个从数据库查询中填充的私有“DataTable”。没问题。我有一个公共的DataView属性{get; set;},它返回DataTable.DefaultView。我将表单上的DataGrid绑定到视图模型上的DataView属性的路径并运行表单。没问题,出现,列显示正确,点击行,没问题。datagrid头排序错误绑定到dataview
现在,问题所在。点击标题,我认为自动处理数据排序,它出现了一个错误,
'MyTable' type does not have property named '[MyColumn]', so cannot sort data collection.
这里的混淆部分。绑定到源自MyTable.DefaultView的VIEW(MyTableView),并且它具有列“MyColumn”,因为它正确显示在网格中。我错过了什么。
只是为了澄清,这里的一些从视图模型
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; }
}
答
事实上,发现它...
的XAML和代码我不得不明确加上
SortMemberPath="MyColumn" (for the column definition of the DataGrid)
它在绑定的[]括号中窒息,但如果我没有在绑定中包括括号,因为它是显示的列源,它不会显示数据...
哦,这让我很头疼! – anakic