XAML {Binding}構造非常方便,因爲它自動處理所有PropertyChanged問題。當您通過.NET數據結構將對象路徑傳遞給對象時,它確實給人印象深刻,並且所有內容都會自動爲您更新。如何在C#中創建類似路徑綁定的XAML
我想在C#中使用相同的東西。我想有一個財產來自另一個財產的價值。示例
class Foo
{
public Bar Bar = new Bar();
public string ItGetter
{
get
{
return Bar.Baz.It;
}
}
}
class Bar
{
public Baz Baz = new Baz();
}
class Baz
{
public string It { get { return "You got It!"; } }
}
如果您在Foo上調用ItGetter,則會從Baz獲得It值。這很好,除非它沒有失效 - 即,如果它改變了,那麼ItGetter上將沒有改變通知。此外,如果Foo.Bar或Bar.Baz引用被更改,您也不會獲得更改noficiations。
我可以在屬性上添加適當的IChangeNotify代碼,但我的問題是:如何編寫ItGetter屬性,以便在路徑中的任何引用或It值更改時調用其PropertyChanged事件?我希望我不必在路徑中的所有項目上手動設置屬性更改的事件....
感謝您的任何幫助!
埃裏克
請參閱我的回答(Eric),下面是該解決方案的完整代碼。 – Eric 2010-04-29 16:33:00