我已经通过以下方式在名为BaseViewModel的类中实现了INotifyPropertyChanged ....
BASEVIEWMODEL.CS:
public class BaseViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
protected void SetValue<T>(ref T backingField, T value, [CallerMemberName] string propertyName = null)
{
if (EqualityComparer<T>.Default.Equals(backingField, value))
{
return;
}
backingField = value;
OnPropertyChanged(propertyName);
}
}
目的是我所有的ViewModel都继承自BaseViewModel,从而回收代码,但是在创建依赖于属性的属性时我发现了以下问题
如您所见,我的GymViewModel继承自BaseViewModel,如何创建依赖于属性的属性?我究竟做错了什么?对我有帮助吗?
答案 0 :(得分:0)
编译器产生错误,因为您将gimnasios
设为属性而不是字段:
private ObservableCollection<Gimnasio> gimnasios { get; set; }
正如编译器所说,不允许将属性作为ref
参数传递。
您可能希望gimnasios
成为Gimnasios
属性的支持 field ,所以用分号替换{ get; set; }
:
private ObservableCollection<Gimnasio> gimnasios;