MVVM отлично подходит для разработки WPF в целом, а не только для TreeView
с.
Если данные (ItemsSource) добавлены, отредактированы
или удалить, как сохранить данные и
ViewModel соответствует?
Не совсем точно, что вы спрашиваете здесь, но привязка WPF обрабатывает изменения коллекции, если эти коллекции реализуют INotifyCollectionChanged
. ObservableCollection<T>
дает вам хорошую, полезную реализацию этого интерфейса, которую вы можете использовать в своих моделях представления.
Привязки сохраняют представление в соответствии с вашей моделью представления. Как правило, вы стремитесь к тому, чтобы на ваш взгляд не было никакого кода. Ваше представление просто привязывается к свойствам модели представления, и ответственность за синхронизацию связанных свойств лежит на модели представления. Вот действительно простой пример:
public class PersonViewModel : INotifyPropertyChanged
{
public string FirstName
{
get { return _firstName; }
set
{
if (_firstName != value)
{
_firstName = value;
OnPropertyChanged("FirstName");
OnPropertyChanged("FullName");
}
}
}
//LastName and other members omitted
public string FullName
{
get { return FirstName + " " + LastName; }
}
}
Здесь на свойство FullName
влияют изменения FirstName
и LastName
. Представление может просто привязаться к FullName
, и любые изменения двух других свойств будут видны в пользовательском интерфейсе.
Я бы посоветовал вам прочитать мой пост в блоге о POCO против DependencyObject
s как просмотр моделей перед началом работы.