2011-11-04 82 views
1

我有一个问题,并相信一些简单的事情,只是无法控制它。我的窗口的数据上下文有一个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; } 
} 

回答

2

事实上,发现它...

的XAML和代码我不得不明确加上

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

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

+0

哦,这让我很头疼! – anakic