繁体   English   中英

在不同视图之间传递数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM