DataGrid.SortMemberPath不起作用

时间:2011-12-29 13:32:20

标签: c# wpf exception-handling wpftoolkit

我创建了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>

当我点击标题对表格进行排序时,我得到了这个例外:

  

PresentationFramework.dll中出现未处理的“System.ArgumentException”类型异常

     

其他信息:'My_Table_Name'类型没有名为'[First Column name]'的属性,因此无法对数据集合进行排序。

1 个答案:

答案 0 :(得分:4)

SortMemberPath旨在指向包含属性名称的字符串,而不是绑定。

您可以在[FirstColumnName]中使用TextBox.Text,因为它是绑定,因此绑定到DataRow[FirstColumnName]

SortMemberPath是属性名称,因此尝试引用不存在的DataRow.[FirstColumnName]