MVVM - 带有预览视图(共享视图模型)方法的菜单视图
MVVM - Menu View with Preview View (Shared ViewModel) approach
我刚刚开始我的 MVVM 和 WPF 之旅,我需要一个建议来解决我的问题,或者指导我找到正确的解决方案。
Link 图片:https://s12.postimg.org/md0h6fv3x/Simple_App.png
描述(我想要实现的):
视图 A 是带有 ListBox 和 DataContext 的菜单 (UserControl):V.ObservableCollection
视图 B 是视图 A ListBox 中所选项目的预览
视图 A 和 B 从 MainWindow 加载
实现该目标的最简单、最干净的方法是什么?
我正在考虑与视图 A 和 B 共享同一个 ViewModel。
在ViewModel中创建一个SelectedItem属性,然后将其放入MainWindow的资源中,并将datacontext绑定到View A & B
- 这是有效的方法吗?如果该 VM 发生更改,是否会在两个视图中正确更新?
以某种方式将 View 的 A 列表框 SelectedItem 绑定到 View B 预览模式,但不知道如何。
只用一个ViewModel
。
例如;伪代码:
public class ViewModel : INotifyPropertyChanged
{
public ObservableCollection<Employee>{get;}
/* provide change notification in ChosenItem */
public Employee ChosenItem{get;set;}
}
对两个视图使用此 ViewModel as DataContext
。
我刚刚开始我的 MVVM 和 WPF 之旅,我需要一个建议来解决我的问题,或者指导我找到正确的解决方案。
Link 图片:https://s12.postimg.org/md0h6fv3x/Simple_App.png
描述(我想要实现的):
视图 A 是带有 ListBox 和 DataContext 的菜单 (UserControl):V.ObservableCollection
视图 B 是视图 A ListBox 中所选项目的预览
视图 A 和 B 从 MainWindow 加载
实现该目标的最简单、最干净的方法是什么?
我正在考虑与视图 A 和 B 共享同一个 ViewModel。 在ViewModel中创建一个SelectedItem属性,然后将其放入MainWindow的资源中,并将datacontext绑定到View A & B
- 这是有效的方法吗?如果该 VM 发生更改,是否会在两个视图中正确更新?
以某种方式将 View 的 A 列表框 SelectedItem 绑定到 View B 预览模式,但不知道如何。
只用一个
ViewModel
。 例如;伪代码:public class ViewModel : INotifyPropertyChanged { public ObservableCollection<Employee>{get;} /* provide change notification in ChosenItem */ public Employee ChosenItem{get;set;} }
对两个视图使用此
ViewModel as DataContext
。