github编辑

变化通知

属性变化

为了让Avalonia知晓视图模型中的属性已经发生了变化,视图模型必须要实现变化通知。最简单的方法是使你的视图模型类继承ReactiveUI中的ReactiveObject

然后在属性的setter中调用RaiseAndSetIfChanged

using ReactiveUI;

public class MyViewModel : ReactiveObject
{
    private string caption;

    public string Caption
    {
        get => caption;
        set => this.RaiseAndSetIfChanged(ref caption, value);
    }
}

详情请参考ReactiveUI文档arrow-up-right.

如果你不想引入对ReactiveUI的依赖,可以自己手动实现INotifyPropertyChangedarrow-up-right.

集合变化

集合也需要实现变化通知。这里有一些开箱即用的集合类:

如果你想要自己实现集合变化通知,你可以手动实现INotifyCollectionChangedarrow-up-right

最后更新于