2010-06-01 64 views
0

我有一個WPF應用程序,其中包含一些Window s和幾個UserControl s和一個Coordinator對象。該窗口及其所有用戶控件通過其DataContext指向一個對象,該對象位於協調器中。WPF綁定和指針

問題是我想在協調器中更改此對象(例如創建新對象()),但我希望所有DataContext都指向新對象。
我試圖通過引用窗口構造函數發送對象,但它沒有幫助。

有關如何重寫所有指針指向的內存位置的任何想法?
(我不想替換對象中的屬性,因爲它很多工作,也不使用指向替換對象的中間對象)

回答

1

我試圖通過裁判發送對象 窗口構造函數,但它沒有 幫助。任何想法如何重寫 所有指針 指向的內存位置?

這很正常,因爲即使您更改引用指向的對象,您的用戶控件也無法知道事情已經發生變化:您必須通知他們。

你有兩個解決方案,這樣做:

  • 讓您的協調落實INotifyPropertyChanged的,提高NotifyPropertyChanged當對象引用的變化,

  • 使可用你的對象通過的DependencyProperty並使用屬性包裝器。 當更改時,DependencyProperty將自動通知其觀察員。

0

除非我遺漏了某些東西,否則您在應用程序中使用了datacontext當你創建一個新的對象時,你不能將datacontext設置爲新的對象,它將被綁定到你的所有用戶控件。

ClearValue(DataContextProperty); 

DataContext = NewlyCreatedObject; 
+0

我簡化我的問題,以實際說明這個問題,我有很多不同datacontexts窗口的每一個與上面的描述,因此我想改變從協調員的所有對象,並避免改變窗口屬性, – Eran 2010-06-01 07:29:00