我的代碼目前看起來是這樣的:依賴屬性後調用C#功能已設置
private Foo myFoo;
public Foo CurrentFoo
{
get { return myFoo; }
set { SetFoo(value); }
}
private void SetFoo(Foo newFoo)
{
// Do stuff
// Here be dragons
myFoo = newFoo;
}
爲了能夠將它綁定在XAML/WPF我需要打開Foo
成一個依賴屬性:
public static DependencyProperty CurrentFooProperty =
DependencyProperty.Register("CurrentFoo", typeof(Foo),
typeof(FooHandler), new PropertyMetadata(false));
public Foo CurrentFoo
{
get { return (Foo)GetValue(CurrentFooProperty); }
set { SetValue(CurrentFooProperty, value); }
}
我聽說你不應該在實際的C#屬性set {}中做魔術,因爲它可能不會被調用,但是該值直接寫入依賴項屬性。如果這是錯誤的,讓我知道,這似乎是最明顯和簡單的路線。
我知道我可以添加一個驗證函數的依賴屬性,但我認爲它不應該用於這個?我需要將更改傳達給尚未綁定到XAML的舊系統。
什麼是解決這個問題的最好方法?