1

首先,我想让大家知道我对 MVVM 概念非常陌生,并且已经非常广泛地寻找了一些关于我想要做什么的解释,但无济于事。

在我正在处理的程序中,我有一个带有几个按钮的 UserControl,它们需要控制主窗口的导航。我希望能够在主窗口中切换 3 个不同的“页面”。而不是页面,我决定(无论出于何种原因,如果这不是最好的方法,请纠正我)为每个页面使用 UserControl,并将可见性切换到正确的页面。我需要数据在切换时保持不变,所以我不相信创建用户控件的新实例会起作用。

我的问题是:如何以允许我切换可见性但以 MVVM 方式将事件从“NavBarView”冒泡到主窗口?我知道我可能完全走错了路,我很高兴就更好地实现这种导航的方式提出任何建议。

我必须使用 WPF,所以 WinForms 不是一个选项。WinForms 的透明度和自定义控件过多。

4

1 回答 1

0

如果可能,我会将“NavBar”作为主窗口的一部分,并使用它来控制表单中的子控件。我会小心嵌套用户控件。如果你能避免它,我会(关键指示是你要在其他地方重用它)。不久前,我接手了一个项目,该项目有一个主窗口,其中包含 3 个独立的高度耦合的用户控件,它们必须一起工作,这是一场噩梦。我可以让它稍微安全地工作的唯一方法是让它们都将它们的数据上下文设置为相同的视图模型。如果我必须从头开始 - 将采用单一视图的完全不同的方法。

于 2012-10-29T04:24:57.960 回答