wpf - 在wpf中的datagrid中的DataGridComboBoxColumn中排序

标签 wpf wpf-controls wpfdatagrid datagridcomboboxcolumn

我有一个数据网格,它有一个列作为 DataGridComboBoxColumn。现有数据的显示、项目源的绑定(bind)、选择更改时更新源工作正常。

问题是当我单击 DataGridComboBoxColumn 的标题时,它没有按字母顺序排序。当我检查时,它实际上是按值排序,而我希望它按显示排序。当我在网上搜索时,它说我应该使用“SortMemberPath”属性并将该属性分配给应该进行排序的属性。

在执行此操作时,排序仅在第一次单击标题时起作用,但在随后的单击中,不会发生排序。我在网上搜索但找不到解决方案。

下面是我的DataGridComboBoxColumn的xaml

<DataGridComboBoxColumn Header="Database Name" 
                        SelectedValueBinding="{Binding Path=Databases.DatabaseID, Mode=TwoWay, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
                        ItemsSource="{Binding Source={StaticResource ManageTablesVMInstance}, Path=Database}"  
                        SelectedValuePath="DatabaseID" DisplayMemberPath="DatabaseName" SortMemberPath="DatabaseName" />

上面使用的一些术语的类型

Databases - ObservableCollection

ManageTablesVMInstance - instance of ViewModel

Database - ObservableCollection

如果我需要任何其他信息,请告诉我。我正在使用 .net 4.0。

请帮忙。

提前致谢。

问候,

萨马尔

最佳答案

我自己找到了解决方案。在 SortMemberPath 而不仅仅是“DatabaseName”中,我应该放置“Databases.DatabaseName”。执行此操作后,排序按预期工作。所以 xaml 看起来像这样。

                    <DataGridComboBoxColumn Header="Database Name" 
                        SelectedValueBinding="{Binding Path=Databases.DatabaseID, Mode=TwoWay, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
                        ItemsSource="{Binding Source={StaticResource ManageTablesVMInstance}, Path=Database}"  
                        SelectedValuePath="DatabaseID" DisplayMemberPath="DatabaseName" SortMemberPath="Databases.DatabaseName" />

令人惊讶的是没有人回答这个问题。我想知道为什么。

问候,

萨马尔

关于wpf - 在wpf中的datagrid中的DataGridComboBoxColumn中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12814970/

相关文章:

c# - 如何在WPF中的静态文本段落中放置可编辑文本

c# - 如何在 MouseEnter 上为 TextBlock 添加下划线

wpf - 为什么我的菜单从右向左打开而不是从左向右打开?

c# - 禁用/覆盖 WPF 控件上的突出显示

c# - WPF DataGrid 似乎没有虚拟化行

c# - WPF 如何单击 DataGrid 中的行以取消选择项目

具有多窗口处理的 WPF + MVVM

wpf - 装饰元素上的装饰器和事件

c# - 控件库的 WPF 样式

c# - 使用附加字符串的整数对 WPF 数据网格进行排序