WPF MVVM:用最小的更改替换控件

时间:2016-05-28 14:13:05

标签: c# wpf mvvm

这将是我第一个使用WPF的项目,而且它非常大。我在这里更关注设计(不是演示)方面。 可能有必要在将来替换控制,这应该通过最小和集中的更改来完成。

示例: -

  • 我在项目的100个地方使用标准按钮控件。明天我 可能需要修改项目中的所有按钮,以便它们显示一些 中心和边框的固定图像现在是红色的,它们是APPEND文本 "试验"到每个按钮的实际文本。在某些情况下,样式可以达到目的,但不是所有时间。

  • 我今天使用标准网格视图,我发现它不符合我的所有要求,并决定使用其他/第三方控制。

在上述(可能是其他)情况下,应该很容易在项目的一个地方更换控制权,它应该在整个项目的所有地点生效。至少,改变应该是最小的。

我读过有关UserControl和自定义控件的内容,但两者都不能达到目的,至少在我的理解中是这样。

问题: - 以这种方式设计应用程序是一种好习惯吗?或者我只是在思考? 如果是,在WPF中实现这一目标的好方法是什么?

1 个答案:

答案 0 :(得分:1)

你过度思考,wpf中的按钮不是winform中的按钮,它不是&#34;一个带有文本的方形区域,当你点击它时会做某事&#34;但是&#34;当你点击它时会发生一些事情&#34;。 WPF中的控件具有您可以覆盖的内置样式,您可以在不触及它们的情况下重新应用它们,所以不要在这里考虑任何自定义。如果您在点击它时需要做一些事情,请使用<Button />并停止思考它,您将能够对应用程序范围内的所有按钮执行任何操作,而不会在以后触及任何按钮通过应用任何级别的样式(整个应用程序,单个窗口,窗口的单个区域等)

看看这个项目为一个例子做了什么,不涉及触摸任何已经制作的文件,完全改变整个应用程序的外观: https://wpfthemes.codeplex.com/

至于更改整个组件(用另一个供应商的gridview替换gridview),如果使用MVVM,它应该非常简单,只要你的表示只是绑定到数据,除了几行之外什么都不需要改变< / p>