У меня есть внутренний словарь, который используется для синхронизации (т. Е. Как с файловым хранилищем, так и с веб-службой).
Вдобавок ко всему, мне нужно создать списки / перечисления для интерфейса WPF. В чем разница между подключением перечислимого к словарю и вызовом PropertyChanged
, когда он обновляется с использованием ObservableCollection, и автоматическим вызовом его CollectionChanged
.
Синхронизация происходит в фоновом режиме автоматически, и некоторые элементы могут быть удалены, другие могут быть обновлены. Я хочу беспрепятственно распространять эту информацию в веб-интерфейсе WPF. (т. е. если удален один элемент, не нужно повторно инициализировать весь экран). Я также хочу добавить анимацию, когда элементы добавляются и удаляются (т. Е. Появляются и исчезают) - возможно ли это, если я заменю весь список или это приведет к тому, что каждый отдельный элемент снова исчезнет?
Так я должен:
1) использовать наблюдаемую коллекцию и написать некоторую причудливую логику синхронизации между словарем и коллекцией?
2) использовать методы расширения linq для преобразования словаря в перечислимое и просто вызывать свойство, измененное для перечисляемого, всякий раз, когда оно изменяется?
3) синхронизировать между словарем и списком, заменяя список при каждом его обновлении?
Кроме того, как бы все это работало с операциями сортировки и фильтрации, выполняемыми только для пользовательского интерфейса? (т.е. если мне нужно отфильтровать некоторые элементы из словаря на основе выбора пользователя, должен ли я использовать метод, аналогичный тому, который вы рекомендовали?)