我正在開發一個 wpf 應用程式,當 Child 的屬性發生更改時,我嘗試通知 Parent 類。類關系如上所示:
class Class1
{
Class2 c2;
private void OnPropertyChanged()
{
// Do someting When Class3.Property is changed
}
}
class Class2
{
Class3 c3;
}
class Class3
{
string Property
{
get {...}
set
{
...
PropertyChanged();
}
}
}
我知道有 INotifyPropertyChanged 用于此目的,但我只發現它用于系結 .xaml 檔案的情況。有沒有辦法用它或類似的東西系結自定義類
uj5u.com熱心網友回復:
DependencyObject除非目標是 a (這對于非 GUI 相關的類來說非常少見),否則您不能系結簡單的類。
如果您需要簡單的通知,您通常會為特定屬性或屬性實作一個事件:
class ClassA
{
public ClassA()
{
var classB = new ClassB();
classB.Activated = OnActivated;
}
private void OnActivated(object sender, EventArgs e)
{
// Handle event
}
}
class ClassB
{
public bool IsActivated
{
get => this.isActivated;
private set
{
this.isActivated = value;
if (this.IsActivated)
{
OnActivated();
}
else
{
OnDeactivated();
}
}
}
public event EventHandler Activated;
public event EventHandler Deactivated;
private void OnActivated()
=> this.Activated?.Invoke();
private void OnDeactivated()
=> this.Deactivated?.Invoke();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494719.html
