MVVM - 如何根据列表中的选定项打开窗口?

Bre*_*dan 6 wpf mvvm

我是WPF和MVVM世界的新手,过去几天花了尽可能多的下载教程,并尽可能多地阅读!

然而,我正在努力用MVVM实现一个非常基本和通用的概念,我迫切需要一些帮助 - 甚至可能是一个例子:-)

我已经掌握了MV-VM的基础知识,指挥甚至是喋喋不休; 但是如何在earch上打开一个新窗口并将窗口ViewModel设置为列表框的选定项目?

让我解释一下:我有一个名为Client的模型,它有一些属性,然后我有一个ViewModel,它获取我的所有客户端并将它们存储在一个ObservableCollection中我有一个屏幕,我在列表框中显示Name&Surname并允许用户过滤和搜索.

所有上述工作都很完美.

当用户选择项目时,我想打开该特定客户端的可编辑"详细客户端视图"屏幕.这个详细屏幕的ViewModel需要以某种方式绑定到所选项目(如果这是有意义的); 或者我需要能够将参数传递给新打开的屏幕的ViewModel.实际上,如果用户可以同时打开多个细节屏幕并编辑多个clints,那就太棒了!

如果有人能给我一个很好的例子,或指出我正确的方向,我会真的很棒!

非常感谢,布兰登

Rac*_*hel 2

我将向 ListBox.SelectionChanged 添加一个事件,该事件执行以下操作:

  • 创建一个新的 Dialog 和 DialogViewModel
  • 将 DialogViewModel.EditableContentProperty 绑定到 ListBox 的 SelectedItem
  • Dialog.DataContext = DialogViewModel
  • Dialog.ShowDialog()