DataGrid.SortMemberPath 不起作用
我创建了一个绑定到 DataTable
的 DataGrid
,在这里:
<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”类型没有名为“[第一列名称]”的属性,因此无法对数据集合进行排序。
I created a DataGrid
with binding to DataTable
, here:
<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>
and when I click on header to sort the table, I get this exception :
An unhandled exception of type 'System.ArgumentException' occurred in PresentationFramework.dll
Additional information: 'My_Table_Name' type does not have property named '[First Column name]', so cannot sort data collection.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SortMemberPath
旨在指向包含属性名称的字符串,而不是绑定。您可以在
TextBox.Text
中使用[FirstColumnName]
,因为它是一个绑定,因此绑定到DataRow[FirstColumnName]
SortMemberPath
是一个属性名称,因此尝试引用不存在的DataRow.[FirstColumnName]
。SortMemberPath
is meant to point to a string containing the property name, NOT to a binding.You can use
[FirstColumnName]
in yourTextBox.Text
because it is a binding, so is binding toDataRow[FirstColumnName]
SortMemberPath
is a property name, so is trying to referenceDataRow.[FirstColumnName]
, which doesn't exist.