我遇到了问题并且相信一些简单的事情,只是无法控制它。我有一个View模型用于我的窗口数据上下文。在它上面我有一个从数据库查询填充的私有“DataTable”。没问题。我有一个公共DataView属性{get; set;},它返回DataTable.DefaultView。我将窗体上的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; }
}
答案 0 :(得分:2)
实际上,发现它......
我必须明确添加
SortMemberPath="MyColumn" (for the column definition of the DataGrid)
它在绑定的[]括号中窒息,但是如果我没有在绑定中包含括号,因为它是显示的列源,它将不会显示数据......