我有一個列表控件,每個控件有zIndex屬性:如何創建的ObservableCollection通過項目的屬性排序和發射CollectionChanged當項目的屬性更改
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; }
}
我也有一個TreeView
使用HierarchicalDataTemplate
,每個WizardStep
哪裏所有WizardControl
都有一個樹節點作爲樹葉。
現在我想按照它們的ZIndex對控件進行排序。我發現了一個使用自定義Converter
(http://stackoverflow.com/a/5730402/69868)的解決方案,只要ZIndex沒有改變,它就可以正常工作。
當ZIndex更改時,已排序的CollectionView不會發出CollectionChanged事件,GUI也不會選擇更改順序。
我的問題:如何創建一個排序的集合,當由於排序值的改變而重新排序項目時將發出正確的事件?
我做到了,並且GUI沒有拿起zIndex的變化。 –
它的奇怪! ...這對我來說很有用......你確定你正在提升setter中的'PropertyChanged'事件嗎? –