2012-11-16 23 views
0

我的主視圖模型(mainViewModel)包含使用DataTemplate綁定到其視圖(innerView)的內部視圖模型(innerViewModel)。懶洋洋地實例化一個很少使用的視圖模型?

在我mainView我有一個ContentPresenter有它綁定到innerViewModel內容屬性和它的知名度綁定到IsVisible財產。 Visibility屬性爲Collapsed,很少會設置爲Visible。我的mainViewModel是列表中的一個〜1000。目前,mainViewModel的每個實例還具有幾乎從未使用過的innerViewModel的實例。是否有一種標準的方式來延遲性地實例化innerViewModel,使其僅在視圖變爲可見時才創建?懶惰實例化的常規方法不起作用,因爲在綁定中使用innerViewModel

也許有更好的方法來安置一個罕見的控制在另一個內?

回答

0

「是否有一種標準的方式來延遲實例化innerViewModel,使其僅在視圖變爲可見時才創建?」

解決方案就是這樣做。現在,我不實際創建innerViewModel的實例,直到IsVisible屬性首次設置爲true。這意味着mainView上的ContentPresenter的內容在大多數情況下都是空的,但這似乎不成問題。

+0

似乎hacky ...什麼是僅僅因爲它不可見,各種屬性還沒有被交互? – BenjaminPaul

2

嘗試使用Lazy對象進行延遲初始化。

相關問題