【发布时间】:2012-06-21 04:33:53
【问题描述】:
我有一个控件列表,其中每个控件都有 ZIndex 属性:
class WizardControl : INotifyPropertyChanged
{
public int ZIndex { get; set; /* set emits PropertyChanged event */}
}
class WizardStep
{
ObservableCollection<WizardControl> Controls { get; set; }
}
class Wizard
{
ObservableCollection<WizardStep> Steps { get; set; }
}
我还有一个使用HierarchicalDataTemplate 的TreeView,其中每个WizardStep 都有一个树节点,所有WizardControl 都是树叶。
现在我想按控件的 ZIndex 对控件进行排序。我找到了一个使用自定义 Converter (http://stackoverflow.com/a/5730402/69868) 的解决方案,只要 ZIndex 不变,它就可以正常工作。
当 ZIndex 发生变化时,排序后的 CollectionView 不会发出 CollectionChanged 事件,GUI 不会选择顺序变化。
我的问题:如何创建一个排序后的集合,当项目由于排序值的变化而重新排序时,该集合会发出正确的事件?
【问题讨论】:
标签: wpf observablecollection collectionview