我创建了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]'的属性,因此无法对数据集合进行排序。
答案 0 :(得分:4)
SortMemberPath
旨在指向包含属性名称的字符串,而不是绑定。
您可以在[FirstColumnName]
中使用TextBox.Text
,因为它是绑定,因此绑定到DataRow[FirstColumnName]
SortMemberPath
是属性名称,因此尝试引用不存在的DataRow.[FirstColumnName]
。