DatagridComboBox列排序

DatagridComboBoxColumn Sort

XAML:

<DataGridComboBoxColumn Header="Department" 
    ItemsSource="{Binding Source={StaticResource departmentViewSource}}" 
    DisplayMemberPath="Title" SelectedValuePath="ID" SortDirection="Ascending"
    SelectedValueBinding="{Binding DepartmentID, Mode=TwoWay, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
    SortMemberPath="lkpDepartments.Sequence" />

它似乎显示了正确的文本,link GUID 正确。但是我尝试过的每个变体都不会按序列字段(整数,无空值,唯一)的顺序显示下拉列表。类似的帖子不重复,因为我用的是他们的解决方案,还是不行。

谢谢。

SortMemberPath适用于DataGrid。当您单击 header.

列时,它决定 属性 作为排序依据

要对 ComboBox 进行排序,您应该对 departmentViewSource 进行排序。例如,您可以通过在 XAML 标记中添加一个 SortDescription 来做到这一点:https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/how-to-sort-and-group-data-using-a-view-in-xaml.

如果您在其他地方使用相同的 CollectionViewSource 并且想要不同的排序顺序,您应该定义另一个并将 ComboBox 绑定到这个。