我正在编写一个遵循MVVM结构的相当大的WPF应用程序。我想基本上以两种模式运行我的UI。第一个是正常的日常运营模式。第二个是我一直想知道的一个......我希望能够在“配置”模式下运行它,用户将看到UI与正常情况大致相同的方式模式,除了当它们悬停在(或可能单击)控件上时会出现一个弹出窗口。此弹出窗口将允许用户更改与该控件相关的某些绑定。我不想暴露每个属性(或每个控件)。
例如: 有一个TextBlock,它具有与压力信号的绑定,现在用户想要将此绑定更改为温度信号。他们可以在配置模式下启动UI,使用TextBlock导航到屏幕,选择它,然后在弹出窗口中看到Text属性,然后可以将它们更改为新的临时信号。这是一个简化的例子,但基本上我想要做的。
这可能吗?请记住,UI必须写入View(XAML)。任何帮助表示赞赏。
P.S。 这将是一个非常有用但很少使用的功能。可能有两个项目可以使相同的视图,但不同的ViewModel和模型... ...至少这是我一直在想的可能需要的项目。即使在使用配置模式UI后必须重新编译正常模式UI。
答案 0 :(得分:0)
每个弹出窗口都应该有自己的VM(或者如果由于每个弹出窗口的属性很少而被证明是一种过度杀伤)它们可以共享,并通过消息总线与主VM通信。
将您的绑定存储为用户设置,当消息从弹出窗口VM到达时,将新绑定作为有效负载,主VM将获得该有效负载并通过简单地调用Settings.Default.Save();
来保存适当的用户设置
根据您的描述,没有理由让它比IMO更复杂......