[英]Passing data between different views
我正在根据MVVM模型用C#编写WPF应用程序。 我有一个MainWindow,其中包含几个视图:MenuView,ContentView1,ContentView2 、。 。 。 等等。
MenuView,ContentView1,ContentView2。 。 是XAML树中的所有表亲 (不打扰)。
MenuView由几个按钮组成。 每个按钮都有一个唯一的ID。 内容视图(所有视图)应收到一个选定(单击)按钮的菜单ID。 即,当单击MenuView中的按钮时,我要将其ID传递给ContentsViews1,ContentsViews2等。
我不确定在视图之间传递数据的最佳方法是什么。
我想将一个事件处理程序附加到驻留在MenuView中的所有菜单按钮上。 该处理程序在MainWindow类(这是根视图)中实现。 该处理程序将向所有子视图引发一个RoutedEvent(带有tunnel选项)。
有更好的方法吗? 这是考虑性能问题的最佳方法吗?
这种方法使我想起了我久违的Java经验,您在其中传递了某种操作字符串! 给听众。
您将所有按钮绑定到一个处理程序? 并根据ID,要在子视图中执行操作?
如果是,则应将所有按钮绑定到它自己的ICommand上,并在处理程序委托中执行操作。
您可以简单地让MenuViewModel
公开其他(感兴趣的)ViewModel可以订阅的事件。 然后,每个视图都可以绑定到相应的事件,并执行所需的操作。
这就留下了一个问题,即每个感兴趣的ViewModel如何检测MenuViewModel
的存在,以便它可以订阅其事件,但是如果没有更多关于您的应用程序和所选MVVM框架的知识,就无法真正回答这一问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.