【发布时间】:2012-01-25 00:57:11
【问题描述】:
我有一个代表 MVVM 控件中包的项目列表。
当您将鼠标悬停在工具提示上时,它需要转到数据库以获取更多信息,为简单起见,我们将其称为“PackageDetails”。我知道如何使用 ViewModel 类处理数据库加载,但我无法确定何时实例化它。
方法 1) 在 'Package' 对象中有一个 'lazy-load' 属性,因此当工具提示被触发时,视图模型将被创建并立即访问数据库。 这种方法并不理想,因为每个“包”对象都不是真正的视图模型,并且最初来自 WCF 对象。
方法 2) 使用Josh Smith blog entry 中解释的转换器。他的例子似乎很适合转换器,但我认为它不太适合我的情况。
方法 3) 以某种方式在 XAML 中创建视图模型,但这似乎是个坏主意。
使用 MVVM 为工具提示动态生成视图模型的好方法是什么 ?
【问题讨论】: