我有一个 ListBox 绑定到我的屏幕 LHS 上的 ViewModel 对象列表。ListBox.SlectedItem 绑定到我的“MainWindowViewModel”上的一个属性,称为 CurrentItem。在 RHS 上,我有一个大区域来详细显示所选项目,其中包含许多用于编辑和浏览 ViewModel 包含的信息的嵌套控件。
我知道有两种构建视图的方法。
- RHS 上的大面积区域是 ContentPresenter,其 Content 属性绑定到 CurrentItem。在我的资源中,定义要与我的 ViewModel 对象一起使用的模板。
- RHS 上的大面积区域是一个固定的 UserControl,其中包含显示我的 ViewModel 所需的所有 xaml。我将 UserControl 的 DataContext 属性绑定到 CurrentItem。
哪种方法更好,为什么?也许选项 2 通常更好,但是当 ListBox 中有不同类型的视图模型时可以使用选项 1,每个模型都有自己的模板?