Привязка IList к списку управления с использованием MVVM - PullRequest
1 голос
/ 13 января 2010

Я пытаюсь понять шаблон MVVM, и я взял пример программы для работы. Модель представляет собой библиотеку C # .net, которая при запросе возвращает объект IList<INote>. Я хочу, чтобы мой взгляд мог добавлять / редактировать / удалять элементы в этой коллекции посредством привязки данных. Но я не знаю, как начать с этого, используя MVVM. Пожалуйста, помогите мне.

Модель предоставляет интерфейс для получения объектов IList<INote>, В представлении есть поле со списком, отображающее содержимое IList<INote> и несколько других элементов управления для добавления данных в IList<INote>.

Ответы [ 3 ]

3 голосов
/ 13 января 2010

Свяжите свой ListBox с ObservableCollection<T>, и он будет мгновенно обновляться каждый раз, когда вы добавляете или удаляете что-то из этого ObservableCollection<T>.

Это ObservableCollection<T> обычно должно быть свойством вашей ViewModel.

Если свойство IList в вашей модели недоступно для наблюдения (и вы не можете его контролировать), вам придется написать код для его синхронизации в вашей модели представления. Это вопросы архитектуры тогда. Я чувствую, что самым чистым выбором в этом отношении является использование ReadOnlyObservableCollection<T>, добавление / удаление элементов в вашем хранилище и соответствующая синхронизация.

1 голос
/ 13 января 2010

Мой пост в блоге на DelegateCommand должен дать вам хорошее обоснование.

0 голосов
/ 18 января 2010

I связывает мой список со ObservableCollection<Item>, и я добавил / удалил / изменил элементы в эту коллекцию и из нее. Работает нормально. Проверьте это на , как это работает без INotifyPropertyChanged . Пожалуйста, поправьте меня, если я ошибаюсь

...