2014-10-01 73 views
0

查看Catel(v4的內部版本508)中的最新覆蓋,我無法找到GetChildViewModels()方法在View中返回子viewmodels的地方。我需要確定當我開始更新我的子視圖綁定到的依賴項屬性時,我所有的子模型都已加載。現在,我有一個問題,我的嵌套控件不顯示它們綁定的數據,直到你開始在接口上選擇事件,然後對依賴屬性進行新的更改。我已經驗證父視圖中的屬性確實具有正確的數據,問題(我認爲)是嵌套控件(子視圖)尚未加載,所以嵌套視圖顯示空網格。如何知道何時在Catel中初始化所有子Viewmodels?

我在一個嵌套視圖中有一棵樹,在另一個嵌套視圖中有一個列表。父視圖包含它們並具有兩個子視圖綁定到的屬性。加載父視圖時,樹視圖會自動加載最後選擇的節點。這工作。選擇節點時,會發送一條消息,通知所有其他組件,他們應該執行他們需要對選定節點執行的任何操作。父組件響應此消息並更新另一個子視圖綁定到的列表。我已檢查並且列表正在更新,但子視圖未顯示數據。只有當我點擊另一個節點時,另一個子視圖纔開始在其列表中顯示項目。我認爲唯一會導致這種情況的是,如果其他子視圖在父組件執行更改時尚未完全綁定。

我該怎麼做呢?

回答

1

的問題是在4.0這個偷偷摸摸變化不大: https://catelproject.atlassian.net/wiki/display/CTL/Mapping+properties+from+view+to+view+model

與4.0開始,Catel不再訂閱依賴項屬性自動

我需要添加:

static MyView() 
{ 
    typeof(MyView).AutoDetectViewPropertiesToSubscribe(); 
} 

給我的xaml.cs文件,讓他們回到過去的工作方式。

+0

偷偷摸摸?請看這裏的重大更改的完整列表:https://catelproject.atlassian.net/wiki/display/CTL/Catel+4.0.0 – 2014-10-02 06:02:50

+0

嗨吉特,我不是故意要對卡特爾侮辱。我的意思是偷偷摸摸,像偷偷靠在我身上,讓我追逐我的尾巴。但是如果遇到類似的困難,完整的列表更改很有用。 – Bitfiddler 2014-10-02 17:18:01

+0

沒有冒犯;-) – 2014-10-02 17:27:38