我是一名有用的助手,可以为您进行文本翻译。以下是需要翻译的内容:
我有一个简单的场景,其中包括一个视图、一个视图模型和一个自定义类型类。
模型类类似于:
public class Person : Validation.DataError, INotifyPropertyChanged
{
#region INotifyProperty
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
public global::System.String name
{
get
{
return _name;
}
set
{
_name= value;
RaisePropertyChanged("name");
}
}
private global::System.String _name;
}
在ViewModel中,我有一个Person属性:private Model.Person person;
public Model.Person Person
{
get
{
return person;
}
set
{
this.person= value;
this.RaisePropertyChanged("Person");
this.SavePersonCommand.OnCanExecuteChanged();
}
}
在我的视图中,我有一个文本框与Person.name绑定。
因此,ViewModel没有执行set方法,因为Person对象仍然相同...它在Model属性中执行set方法。
我希望让用户更改人名并调用另一个方法(通过Web服务搜索和其他内容...),我认为这个功能应该在ViewModel中。
我正在使用MVVM Light工具包中的Messenger在不同的视图模型和视图之间进行通信。
现在我不知道是否应该使用中介者来解决这个问题,还是我应该知道另一种解决方法。