DataGrid.SortMemberPath 不起作用

发布于 2024-12-23 11:20:53 字数 931 浏览 0 评论 0原文

我创建了一个绑定到 DataTableDataGrid,在这里:

<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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不弃不离 2024-12-30 11:20:53

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 your TextBox.Text because it is a binding, so is binding to DataRow[FirstColumnName]

SortMemberPath is a property name, so is trying to reference DataRow.[FirstColumnName], which doesn't exist.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文