如何使用领域数据库覆盖RealmObject中的属性?

时间:2018-07-15 12:06:43

标签: c# .net realm 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")的原因是因为在更新SetRepInfo时,我使用此对象的所有地方都没有更新的Reps

1 个答案:

答案 0 :(得分:2)

您应该改写OnPropertyChanged方法。根据{{​​3}}改编示例,您需要类似以下内容:

protected override void OnPropertyChanged(string propertyName)
{
    if (propertyName == nameof(Reps))
    {
        RaisePropertyChanged(nameof(SetRepInfo));
    }
}