首先,我想让所有人都知道我对MVVM概念非常陌生,并且已经广泛地寻找了关于我想做什么的一些解释,但无济于事。
在我正在处理的程序中,我有一个带几个按钮的UserControl,需要控制主窗口的导航。我有3个不同的“页面”,我希望能够在主窗口之间进行切换。我决定而不是页面(出于某种原因(如果不是最佳方法,请更正我),而不是页面)对每个页面使用UserControl,并将可见性切换到正确的页面。我需要数据在切换时保持不变,因此我认为创建Usercontrols的新实例不起作用。
我的问题是:如何以允许我切换可见性的方式(但以MVVM方式)将事件从“NavBarView”气泡到主窗口?我知道我可能会完全以错误的方式进行操作,并且很高兴就实现此导航的更好方法提出任何建议。
我必须使用WPF,因此WinForms不是一个选择。 WinForms的透明度和自定义控件太多。
最佳答案
如果可能,我将使“NavBar”成为主窗口的一部分,并使用它来控制表单中的子控件。我会小心嵌套用户控件。如果可以的话,我会避免(关键指示是您打算在其他地方重用它)。我不久前接手了一个项目,该项目的主窗口带有3个单独的高度耦合的用户控件,这些控件必须一起工作,这真是一场噩梦。我可以使其安全运行的唯一方法是让它们全部将数据上下文设置为同一 View 模型。如果我必须从头开始,那么采用单一 View 将采取完全不同的方法。
关于c# - 使用WPF中的MVVM从UserControl冒泡事件。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13114746/