绑定到dataview的Datagrid标头排序错误

时间:2011-11-04 14:18:58

标签: wpf sorting binding datagrid

我遇到了问题并且相信一些简单的事情,只是无法控制它。我有一个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; }
}

1 个答案:

答案 0 :(得分:2)

实际上,发现它......

我必须明确添加

SortMemberPath="MyColumn"   (for the column definition of the DataGrid)

它在绑定的[]括号中窒息,但是如果我没有在绑定中包含括号,因为它是显示的列源,它将不会显示数据......