DataGrid.SortMemberPath не работает - PullRequest
       1

DataGrid.SortMemberPath не работает

0 голосов
/ 29 декабря 2011

Я создал DataGrid с привязкой к DataTable, здесь:

<DataGrid1:DataGrid x:Name="dg" CanUserDeleteRows="True" AutoGenerateColumns="False" ItemsSource="{Binding MyDataTable}">
<DataGrid1:DataGrid.Columns>
  <DataGrid1:DataGridTemplateColumn SortMemberPath="[First Column name]" Header="First Column name">
      <DataGrid1:DataGridTemplateColumn.CellTemplate>
         <DataTemplate>
             <TextBox Text="{Binding [First Column name],Mode=TwoWay}" />
         </DataTemplate>
      </DataGrid1:DataGridTemplateColumn.CellTemplate>
   </DataGrid1:DataGridTemplateColumn>
</DataGrid1:DataGrid.Columns>
</DataGrid1:DataGrid>

, и когда я нажимаю на заголовок для сортировки таблицы, я получаю это исключение:

Необработанное исключение типа «System.ArgumentException» произошло в PresentationFramework.dll

Дополнительная информация: тип «My_Table_Name» не имеет свойства с именем «[Имя первого столбца]», поэтому не может сортировать сбор данных.

1 Ответ

4 голосов
/ 29 декабря 2011

SortMemberPath предназначен для указания на строку, содержащую имя свойства, а НЕ на привязку.

Вы можете использовать [FirstColumnName] в вашем TextBox.Text, потому что это привязка, поэтому привязка к DataRow[FirstColumnName]

SortMemberPath - это имя свойства, поэтому пытается сослаться на DataRow.[FirstColumnName], которого не существует.

...