0

我正在编写一个相当大的 WPF 应用程序,它遵循 MVVM 结构。我想以两种模式运行我的 UI。第一个是正常的日常操作模式。第二个是我一直想知道的...我希望能够在“配置”模式下运行它,在这种模式下,用户将看到 UI 的方式或多或少与正常方式相同模式,除了当他们将鼠标悬停在(或单击)控件时会出现一个弹出窗口。此弹出窗口将允许用户更改与该控件相关的某些绑定。我不想公开每个属性(或每个控件)。

例如:有一个与压力信号绑定的 TextBlock,现在用户想要将此绑定更改为温度信号。他们可以在配置模式下启动 UI,使用 TextBlock 导航到屏幕,选择它,然后在弹出窗口中查看 Text 属性,然后他们可以将其更改为新的临时信号。这是一个简化的示例,但基本上是我想要做的。

这可能吗?请记住,UI 必须写入视图 (XAML)。任何帮助表示赞赏。

PS这将是一个非常有用但很少使用的功能。也许有 2 个项目使用相同的 View 但不同的 ViewModel 和 Model 是可以的……至少我一直认为这可能是需要的。即使在使用配置模式 UI 后必须重新编译正常模式 UI。

4

1 回答 1

0

每个弹出窗口都应该有自己的虚拟机(或者如果由于每个弹出窗口的属性数量很少,它们可以共享)并通过消息总线与主虚拟机通信。

将绑定存储为用户设置,当消息从弹出窗口 VM 到达时,将新绑定作为有效负载携带,主 VM 将获取该有效负载并通过简单地调用保存适当的用户设置Settings.Default.Save();

根据您的描述,没有理由让它比 IMO 更复杂......

于 2013-10-11T22:40:56.110 回答