我最近偶然发现了一个问题
ListView
控件似乎限制了对其项进行排序的能力。具体来说,我在尝试
SortDescription
识别嵌套属性(属性的属性)。
对于按比例进行的直接正向排序,应执行以下行操作:
listView.Items.SortDescriptions.Add(new SortDescription("MyProperty",
ListSortDirection.Ascending));
事实上,它对我很有效。但是,因为
ItemSource
为了我
列表视图
是(强类型)
DataTable
,一些列绑定到行的嵌套属性(即
Row.OtherTableRow.SubProperty
绑定路径样式)-这是ADO.NET数据集用于层次数据库的方式。
我想做的是这样的事情:
listView.Items.SortDescriptions.Add(new SortDescription("MyProperty.SubProperty",
ListSortDirection.Ascending));
但不幸的是,那条线
ArgumentException
:
“orders”类型没有名为“row.[id]”的属性,因此无法对数据集合排序。
奇怪的是,绑定到嵌套属性没有问题。实际上,字段在
列表视图
…也不添加
PropertyGroupDescription
到
listView.GroupDescriptions
给我嵌套属性的任何问题-它只是
SortDescriptions
!
这只是WPF/
列表视图
控制?作为框架的一部分,我有没有办法获得支持,或者我在那里会走运?如果不幸的是,这种不一致是不可避免的,那么如果有人能为这种嵌套属性的场景建议一种黑客攻击或变通方法,我会非常感激。我已经尝试了一些想法,但都没有成功。
注意:我知道ORM可以很好地解决我的问题,但我担心这对于我正在进行的当前项目来说根本不可行。简单的ADO.NET数据集必须这样做。