Это простой вопрос, и я быстро искал Интернет в течение нескольких часов ...Как синхронизировать модель и просмотреть модель двунаправленную в MVVM?
У меня есть модель и модель с одним свойством. Чтобы сделать это свойство видимым в представлении, я использую объект view-model, который должен автоматически генерироваться из объекта модели и наоборот. Конечно, следующий код будет генерировать исключение StackOverflowException, поскольку обновление модели-объекта в модели вызывает обновление объекта-модели view в модели представления, и это вызывает обновление модельного объекта в модели и так далее ...
class ModelObject
{
...
}
class ViewModelObject
{
...
}
class Model : INotifyPropertyChanged
{
private ModelObject modelObject = new ModelObject();
...
public ModelObject ModelObject
{
get
{
return this.modelObject;
}
set
{
this.modelObject = value;
this.NotifyPropertyChanged("ModelObject");
}
}
}
class ViewModel : INotifyPropertyChanged
{
private ViewModelObject viewModelObject = new ViewModelObject();
private Model model = new Model();
...
public ViewModel()
{
this.model.PropertyChanged += new PropertyChangedEventHandler(this.propertyChangedEvent);
}
public ViewModelObject ViewModelObject
{
get
{
return this.viewModelObject;
}
set
{
this.viewModelObject = value;
this.model.ModelObject = new ModelObject(...);
this.NotifyPropertyChanged("ViewModelObject");
}
}
private void propertyChangedEvent(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName.Equals("ModelObject"))
{
this.ViewModelObject = new ViewModelObject(...);
}
}
}
Каков общий способ синхронизации этих двух объектов?
Какое применение этого поведения? Где вы его используете? Что ты пытаешься сделать? – Floremin
Я думаю, что базовым в MVVM является синхронизация модели представления и модели. Мне нужно это поведение постоянно в разных случаях. – user2220511