这里是使用 MVVM Light 的 Set
方法的基本模式:
public class MyViewModel : ViewModelBase
{
private string _text;
public Text
{
get{ return _text; }
set{ Set(()=>Text, ref _text, value); }
}
}
但是在我的项目中,我将字段保存在DataModel类中,这对于克隆数据和复制以取消修改非常方便:
public class MyDataModel
{
public string Text;
}
public class MyViewModel : ViewModelBase
{
private MyDataModel data;
public Text
{
get{ return data.Text; }
set{ data.Text = value; RaisePropertyChanged(()=>Text); }
}
}
但在这种情况下,我不能使用Set
方法,因为它的第二个参数是ref
,而我无法将data.Text
用作ref
参数。
Set( ()=>Text, ref data.Text, value ); // - its error
欢迎提出任何解决此问题的想法。