MVVM如何最好地显示listbox . selected item
本文关键字:listbox selected item 显示 何最好 MVVM | 更新日期: 2023-09-27 18:14:28
我有一个ListBox绑定到屏幕LHS上的ViewModel对象列表。列表框。selecteditem被绑定到我的"MainWindowViewModel"上的一个属性,称为CurrentItem。在RHS上,我有一个很大的区域,可以详细显示选中的项目,其中包含许多嵌套的控件,用于编辑和浏览ViewModel包含的信息。
据我所知,有两种方法可以构建视图。
- RHS上的大区域是一个ContentPresenter,其Content属性绑定到CurrentItem。在我的资源中,定义一个用于我的ViewModel对象的模板。
- RHS上的大区域是一个固定的UserControl,包含所有需要的xaml来显示我的ViewModel。我将UserControl的DataContext属性绑定到CurrentItem。
哪个是更好的方法,为什么?也许选项2在一般情况下更好,但选项1可以在ListBox中有不同类型的视图模型时使用,每个都有自己的模板?
我个人不会直接绑定到ViewModel中的选定对象,因为这样做会破坏MVVM模式。
我建议做的是为整个视图创建一个ViewModel,包括你的ViewModel列表,并添加一个SelectedViewModel属性,该属性绑定到所选项目。所以选择信息也在ViewModel中
然后你可以将"父"视图模型的SelectedObject绑定到RHS。我建议阅读这篇MSDN文章,了解如何使用MVVM模式显示SelectedItems。