我正在尝试使用CollectionViewSource实现一些组合框排序。 这个组合框实际上是数据模板的一部分,并在列表视图中重复出现。 我的第一个方法似乎有效(使用CollectionViewSource),但是所有的组合框共享相同的数据上下文。 这使得每当其他框之一被更改时,所有其他框都会更改以反映 - 这不是期望的副作用。
我决定放弃并尝试使用内联xaml实现基本组合框(不在数据模板中),以指定CollectionViewSource(而不是创建静态资源的cvs)。 我无法成功显示我的数据。 我可能完全错误地进行了操作,因为我还是WPF的新手。
这是我的组合框的xaml:
这个组合框所在的用户控件的DataContext绑定到一个名为Configurations的ObservableCollection属性的对象上,每个配置都有一个名为AgencyName的属性。我已经验证了使用标准绑定而不使用cvs可以正常工作,因此我知道在这方面一切都很好。
如果能帮忙解决问题将不胜感激,因为我已经没有借口向我的老板解释了 : )。 我也不想降低代码质量并在代码后端进行排序(虽然当我构建ObservableCollection时可以这样做,但我认为这违反了DRY原则)。
我决定放弃并尝试使用内联xaml实现基本组合框(不在数据模板中),以指定CollectionViewSource(而不是创建静态资源的cvs)。 我无法成功显示我的数据。 我可能完全错误地进行了操作,因为我还是WPF的新手。
这是我的组合框的xaml:
<ComboBox>
<ComboBox.ItemsSource>
<Binding>
<Binding.Source>
<CollectionViewSource Source="{Binding Path=Configurations}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="AgencyName" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Binding.Source>
</Binding>
</ComboBox.ItemsSource>
</ComboBox>
这个组合框所在的用户控件的DataContext绑定到一个名为Configurations的ObservableCollection属性的对象上,每个配置都有一个名为AgencyName的属性。我已经验证了使用标准绑定而不使用cvs可以正常工作,因此我知道在这方面一切都很好。
如果能帮忙解决问题将不胜感激,因为我已经没有借口向我的老板解释了 : )。 我也不想降低代码质量并在代码后端进行排序(虽然当我构建ObservableCollection时可以这样做,但我认为这违反了DRY原则)。