如何使用领域数据库覆盖 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));
    }
}