WPF Combobox 排序,但最初没有选择条目?
WPF Combobox sorting, but initally no entry selected?
我使用以下 XAML 实现了 WPF 组合框的排序:
<CollectionViewSource x:Key="SortedAreas" Source="{Binding AllAreas}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Name"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
<ComboBox Name="PhotoLocationAreaComboBox"
ItemsSource="{Binding Source={StaticResource SortedAreas}}"
DisplayMemberPath="Name">
</ComboBox>
基本上可以正常工作 - 条目已排序,但有一个副作用:
- 在我添加排序之前(直接绑定到作为 ObservableCollection 的 AllAreas,内部没有选择组合框条目(空)
- 排序后自动预选第一个排序条目
知道如何通过排序恢复原始行为(未选择条目)吗?我试过 SelectedIndex = "0",但这没有帮助。
将 IsSynchronizedWithCurrentItem
属性 设置为 false
:
<ComboBox Name="PhotoLocationAreaComboBox"
ItemsSource="{Binding Source={StaticResource SortedAreas}}"
DisplayMemberPath="Name"
IsSynchronizedWithCurrentItem="False">
</ComboBox>
我使用以下 XAML 实现了 WPF 组合框的排序:
<CollectionViewSource x:Key="SortedAreas" Source="{Binding AllAreas}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Name"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
<ComboBox Name="PhotoLocationAreaComboBox"
ItemsSource="{Binding Source={StaticResource SortedAreas}}"
DisplayMemberPath="Name">
</ComboBox>
基本上可以正常工作 - 条目已排序,但有一个副作用:
- 在我添加排序之前(直接绑定到作为 ObservableCollection 的 AllAreas,内部没有选择组合框条目(空)
- 排序后自动预选第一个排序条目
知道如何通过排序恢复原始行为(未选择条目)吗?我试过 SelectedIndex = "0",但这没有帮助。
将 IsSynchronizedWithCurrentItem
属性 设置为 false
:
<ComboBox Name="PhotoLocationAreaComboBox"
ItemsSource="{Binding Source={StaticResource SortedAreas}}"
DisplayMemberPath="Name"
IsSynchronizedWithCurrentItem="False">
</ComboBox>