使我的业务对象实现INotifyPropertyChanged

时间:2015-10-16 10:00:05

标签: c# mvvm mvvm-light inotifypropertychanged

我试图让我的业务对象使用MVVMLight中的Set()方法实现INotifyPropertyChanged。这就是我到目前为止所做的:

public class Person : ObservableObject
{
    private readonly Entities.Person entity;

    public Person()
    {
        entity = new Entities.Person();
    }

    public int ID
    {
        get { return entity.Id; }
        set { Set(() => ID, ref entity.Id, value); }
    }
}

显然,我无法做到这一点,因为我收到错误: A property or indexer may not be passed as an out or ref parameter

我该怎么做?我是否需要直接实现INotifyPropertyChanged,还是有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:1)

尝试更改:

Set(() => ID, ref id , value);

要:

var obj = entity.Id;
Set(() => ID, ref obj, value); 
entity.Id=obj;

答案 1 :(得分:0)

问题是:entity.Id是一个属性。 你可以使用解决方法:

set 
{ 
int id;
Set(() => ID, ref id , value); 
entity.Id=id;
}