2011-11-04 112 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