【发布时间】:2018-09-12 22:13:33
【问题描述】:
我是 WPF MVVM 的新手。我在这里有 MainWindow.xaml 网格分为两列。 Column1 与 MenuUserControl.xaml 挂钩,其中有两个称为 Page1 和 Page2 的按钮。 Column2 与 ContentControl 挂钩,用于根据 MenuUserControl.xaml 中的按钮单击显示视图。单击 Page1 按钮时,其背景颜色应变为蓝色,然后单击 Page2 按钮时,其背景颜色应变为蓝色,而 Page1 背景颜色应变为正常。如何在 XAML 中实现这一点?
【问题讨论】:
-
使用 MVVM 模式,您通常绑定到一个 bool 并有一个 ValueConverter 将 bool 转换为您想要的颜色。写一些代码然后回来,我们会帮忙的。
-
我可以在 XAML 触发器或 DataTriggers 中实现这一点吗?
-
是的,你也可以这样做
-
有很多不同的方法可以做到这一点。如果您只有 2 个视图,那么这很简单,您选择哪个并不重要。如果你有更多,那么很快就会变得相当复杂,我会使用一个列表框。那已经有了选择机制。您单击一行以将其选中,并且 isselected 变为 true。它也已经有一种机制,使所选行的背景为浅蓝色。