小编Jso*_*n76的帖子

MVVM Light 和 set 数据模型字段

下面是使用 MVVM LightSet方法的基本模式:

public class MyViewModel : ViewModelBase
{
    private string _text;
    public Text 
    {
        get{ return _text; }
        set{ Set(()=>Text, ref _text, value); }
    }        
}
Run Code Online (Sandbox Code Playgroud)

但是在我的项目中,我将字段保留在 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); } 
    }        
}
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下我不能使用该Set方法,因为它的第二个参数是ref并且我不能data.Text用作ref参数。

Set( ()=>Text, ref data.Text, value ); // …
Run Code Online (Sandbox Code Playgroud)

c# wpf mvvm mvvm-light

5
推荐指数
1
解决办法
2950
查看次数

标签 统计

c# ×1

mvvm ×1

mvvm-light ×1

wpf ×1