派生类中的 ObservableProperty 属性

问题描述 投票:0回答:1

我正在尝试在我的一台虚拟机中使用 ObservableProperty 属性。我应该如何捕获派生类中的 Changed 事件?

using CommunityToolkit.Mvvm.ComponentModel;

partial class PersonVM : ObservableObject
{
    [ObservableProperty]
    private bool isSelected = false;
}


class TeacherVM : PersonVM
{
    // How to do this?
    partial void OnIsSelectedChanged(bool value)
    { }    
}
c# wpf
1个回答
0
投票

这可能是最简单的实现:

    partial class PersonVM : ObservableObject
    {
        [ObservableProperty]
        private bool isSelected = false;
    }


    partial class TeacherVM : PersonVM
    {
        public TeacherVM()
        {
            PropertyChanged += TeacherVM_PropertyChanged;
        }

        private void TeacherVM_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName != nameof(IsSelected)) return;
            // do stuff
        }
    }

或者,根据您的需要,您可以创建一个可以在派生类中重写的虚拟或抽象成员。

© www.soinside.com 2019 - 2024. All rights reserved.