在添加新记录之后,我想在纯WPF中对可编辑的组合框进行排序。经过一些研究后,我发现了一些使用CollectionViewSource.SortDescription
的提示,但它对我没有用。我究竟做错了什么?使用我的DataTemplate
的项目的DataContext工作正常,但DataTemplate
和资源部分之间的绑定不能对我的条目列表进行排序。
我的XAML部分
<DataTemplate x:Key="Document">
<DataTemplate.Resources>
<CollectionViewSource x:Key="SortedLabels" Source="{Binding Parent.Labels}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Items"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</DataTemplate.Resources>
<Grid>
...
<ComboBox Name="cbLabel"
ItemsSource="{Binding Source={StaticResource SortedLabels}}"
IsEditable="True"
LostFocus="cbLabel_LostFocus"
KeyUp="cbLabel_KeyUp"
Visibility="{Binding Path=IsUndiscovered, Converter={StaticResource ResourceKey=BooleanToVisibilityConverter}}"/>
...
</Grid>
</DataTemplate>
修改
集合Parent.Labels
的类型为ObservableCollection<String>
。
答案 0 :(得分:0)
很难说因为你没有显示你正在尝试排序的集合,但我的猜测是Parent.Labels中的每个对象都没有Items属性。 PropertyName引用列表中的各个对象的属性,它将查看并尝试排序。我猜你想要更多的“名字”或其他财产。