wpf中datagrid中DataGridComboxColumn中的排序

wpf中datagrid中DataGridComboxColumn中的排序,wpf,wpf-controls,wpfdatagrid,datagridcomboboxcolumn,Wpf,Wpf Controls,Wpfdatagrid,Datagridcomboboxcolumn,我有一个datagrid,它有一个列作为DataGridComboxColumn。显示现有数据、绑定itemsource、在选择更改时更新源正常工作 问题是,当我单击DataGridComboxColumn的标题时,它没有按字母顺序排序。当我选中它时,它实际上是按值排序,而我希望它按显示排序。当我在网上搜索时,它说我应该使用“SortMemberPath”属性,并将该属性分配给应该进行排序的属性 进行此操作时,排序仅在第一次单击标题时有效,但在后续单击时,不会进行排序。我在网上搜索,但没有找到解

我有一个datagrid,它有一个列作为DataGridComboxColumn。显示现有数据、绑定itemsource、在选择更改时更新源正常工作

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

进行此操作时,排序仅在第一次单击标题时有效,但在后续单击时,不会进行排序。我在网上搜索,但没有找到解决办法

下面是我的DataGridComboxColumn的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" />

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

数据库-可观察收集

ManageTablesVMInstance-ViewModel的实例

数据库-可观察收集

如果需要我方提供任何其他信息,请告知我。我正在使用.NET4.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" />

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

问候,

撒马尔