如何使用领域数据库覆盖 RealmObject 中的 属性?
How can I override a property in a RealmObject using realm database?
我想使用 Realm 覆盖以下 属性,这样我就可以为另一个 属性 触发 RaisePropertyChanged
:
public int Reps { get; set; }
这是行不通的,因为它不会被 Realm 作为数据库中的一列获取:
private int _reps;
public int Reps
{
get => _reps;
set
{
RaisePropertyChanged("Reps");
RaisePropertyChanged("RepsInfo");
_reps = value;
}
}
public int Reps { get; set; }
它的价值 RepsInfo
看起来像这样:
public string SetRepInfo { get => $"{Sets}x{Reps}"; }
我想做 RaisePropertyChanged("RepsInfo")
的原因是因为当 Reps
更新时,我使用此对象的所有地方都没有得到更新的 SetRepInfo
。
您应该改写 OnPropertyChanged
方法。改编 docs 中的示例,您需要如下内容:
protected override void OnPropertyChanged(string propertyName)
{
if (propertyName == nameof(Reps))
{
RaisePropertyChanged(nameof(SetRepInfo));
}
}
我想使用 Realm 覆盖以下 属性,这样我就可以为另一个 属性 触发 RaisePropertyChanged
:
public int Reps { get; set; }
这是行不通的,因为它不会被 Realm 作为数据库中的一列获取:
private int _reps;
public int Reps
{
get => _reps;
set
{
RaisePropertyChanged("Reps");
RaisePropertyChanged("RepsInfo");
_reps = value;
}
}
public int Reps { get; set; }
它的价值 RepsInfo
看起来像这样:
public string SetRepInfo { get => $"{Sets}x{Reps}"; }
我想做 RaisePropertyChanged("RepsInfo")
的原因是因为当 Reps
更新时,我使用此对象的所有地方都没有得到更新的 SetRepInfo
。
您应该改写 OnPropertyChanged
方法。改编 docs 中的示例,您需要如下内容:
protected override void OnPropertyChanged(string propertyName)
{
if (propertyName == nameof(Reps))
{
RaisePropertyChanged(nameof(SetRepInfo));
}
}