Существует ли путь, который будет уведомлен, когда текущее местоположение CompositeCollection изменяется?
Мне должен был контролировать CompositeCollection CollectionView, любые идеи одобрены.
Вы можете обнаружить, когда текущий элемент изменился путем мониторинга IconglectionView.CurrengeChanged
события вашего CollectionView. Для меня следующий код работает:
CompositeCollection cc = new CompositeCollection();
cc.Add(new CollectionContainer { Collection = new string[] { "Oh No!", "Fie" } });
cc.Add(new CollectionContainer { Collection = new string[] { "Zounds", "Ods Bodikins" } });
CollectionViewSource cvs = new CollectionViewSource { Source = cc };
// Subscribing to CurrentChanged on the ICollectionView
cvs.View.CurrentChanged += (o, e) => MessageBox.Show("current changed");
lb.ItemsSource = cvs.View; // lb is a ListBox with IsSynchronizedWithCurrentItem="True"
, когда я изменяю выбор в списке, отображается окно сообщения.
Что касается фильтрации, сортировки и группировки, в соответствии с ответом Aron, которые они не доступны на вид на композиционную технику. Но для записи здесь есть способы выявления изменений для представлений, которые делают поддерживают эти функции:
ОСУЩЕСТВЕННОЕ ЭКСПЛУАТАЦИЯ
, поэтому подключите обработчик событий на CollectionChanged на свойстве GroupDescriptions.
Вы не можете запустить коллекцию коллекции Copmposite, см. здесь