我试图让我的业务对象使用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,还是有其他方法可以做到这一点?
答案 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;
}