我的主视图模型(mainViewModel
)包含一个内部视图模型(innerViewModel
),它使用DataTemplate绑定到它的视图(innerView)。
在我的mainView
我有一个ContentPresenter
,其内容属性绑定到innerViewModel
,并且它的可见性绑定到IsVisible
属性。 “可见性”属性已折叠,很少会设置为“可见”。
我的mainViewModel
是列表中的~1000之一。目前,mainViewModel
的每个实例都有一个几乎从不使用的innerViewModel
实例。有没有一种标准的方法来懒惰地实例化innerViewModel
,只有当它的视图变得可见时才会创建它?懒惰实例化的常规方法不起作用,因为innerViewModel
用于绑定。
也许有一种更好的方法可以在另一种控制中容纳一种罕见的控制?
答案 0 :(得分:2)
尝试使用Lazy对象进行延迟初始化。
答案 1 :(得分:0)
"是否存在一种懒惰地实例化innerViewModel的标准方式,只有当它的视图变得可见时才会创建它?"
解决方案是做到这一点。现在我实际上并没有创建innerViewModel的实例,直到IsVisible属性首次设置为true。这意味着mainView上的ContentPresenter的内容在大多数情况下都绑定为null,但这似乎不是问题。