У меня проблема, и я верю во что-то простое, просто не могу справиться с этим. У меня есть модель View для моего контекста данных окна. На нем у меня есть частный «DataTable», который заполняется из запроса к базе данных. Нет проблем. У меня есть публичное свойство DataView {get; set;}, которое возвращает DataTable.DefaultView. Я связываю DataGrid в форме с путем свойства DataView в модели представления и запускаю форму. Нет проблем, подходит, столбцы отображаются правильно, нажимайте на строки, нет проблем.
Теперь проблема. Нажмите на заголовок для того, что я думал, автоматически обрабатывает сортировку данных, и появляется ошибка, которая
'MyTable' type does not have property named '[MyColumn]', so cannot sort data collection.
Запутанная часть здесь. Привязка относится к VIEW (MyTableView), происходящему из MyTable.DefaultView, и он имеет столбец «MyColumn», поскольку он правильно отображается в сетке. Чего мне не хватает?
Просто чтобы уточнить, вот некоторые из xaml и кода из модели представления
1010 * 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; }
}