我正在尝试在我的一台虚拟机中使用 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)
{ }
}
这可能是最简单的实现:
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
}
}
或者,根据您的需要,您可以创建一个可以在派生类中重写的虚拟或抽象成员。