У меня есть список элементов управления, где каждый элемент управления имеет свойство 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; }
}
У меня также есть TreeView
, использующий HierarchicalDataTemplate
, где каждый WizardStep
имеет узел дерева со всеми WizardControl
в виде листьев дерева.
Теперь я хотел бы отсортировать элементы управления по их ZIndex. Я нашел решение, используя пользовательский Converter
(http://stackoverflow.com/a/5730402/69868), который отлично работает, пока ZIndex не меняется.
Когда ZIndex изменяется, отсортированный CollectionView не генерирует событие CollectionChanged, а графический интерфейс не выбирает изменение порядка.
Мой вопрос: как создать отсортированную коллекцию, которая будет генерировать правильные события, когда элементы переупорядочиваются из-за изменения значений сортировки?