У меня есть несколько классов коллекций, которые реализуют свои собственные уведомления об обновлении.Должно быть довольно легко перевести эти уведомления в INotifyCollectionChanged
реализацию в прокси-классе.
INotifyPropertyChanged
уже позаботился;этот вопрос касается только прокси коллекций.
Итак, я ищу способ создания прокси, который относительно прост в использовании из XAML.Это особенно верно для вложенных коллекций.Пользовательские классы коллекции являются частью библиотеки, которая не может быть изменена (и не получена из).Также невозможно заменить типы коллекций на INotifyCollectionChanged
-совместимые эквиваленты, потому что код обновления данных находится вне моего контроля.
Я бы предпочел решение, которое также работает с SL, но это не так.строгое требование.
До сих пор я считаю, что следующие подходы жизнеспособны:
- Определите
TypeDescriptionProvider
, зарегистрированный для классов коллекции, который добавляет свойство Proxy
.Это позволяет связывать пути в прокси.Кажется, что это решение является самым простым с точки зрения XAML, но не совместимо с SL. - Определите преобразователь значений, который создает прокси.Это будет работать немного больше со стороны XAML.Это должно работать для SL.Однако может потребоваться, чтобы «промежуточные» визуальные элементы содержали результат преобразователя значений, если в пути требуется более одного преобразования значений.
Я изучил ObjectDataProvider
, но не думаю, чтоон может быть использован в этой ситуации (метод создания прокси должен быть универсальным для типа объектов в контейнере).
Любые рекомендации, какой из этих двух подходов лучше, или любые другие подходы?