WPF中针对不同客户的不同GUI定义

时间:2014-07-28 14:45:20

标签: c# wpf user-interface

我有一个为不同客户定制的项目,仅在UI中。所有代码都完全相同。

现在,我复制整个项目以获得客户的不同UI(主要是按钮对齐)。是否可以只交换UI定义/指定在构建期间使用哪些,所以我不需要复制整个项目?

类似的东西:

UI_cust1
UI_cust2
UI_cust3
...

使用

构建
UI_cust2

2 个答案:

答案 0 :(得分:0)

您是否可以提供从XML文件中读取值的类的配置提供程序类型?

然后,您可以按客户编辑XML。

我认为如果您将提供程序创建为数据源,然后包含一个转换器,该转换器将一个键作为参数来返回特定值,那么您应该能够为要控制的每个属性创建键。

我在过去做过类似的本地化和主题解决方案,但它确实有效。不幸的是,我没有立即拿到代码。

答案 1 :(得分:0)

我建议你养成在所有项目中使用IOC(Invertion of Control)容器的习惯。它强迫您使用Dependency Injection,这为您提供了更加模块化的架构。

大多数IOC容器支持用于注册依赖项的XML文件。 这样,您只需要为不同的客户更改XML配置文件。 Voilà,您现在可以为每个客户提供不同的应用程序行为/外观。

作为奖励,您的应用程序将更容易测试。在构建应用程序时,最好使用TDD (测试驱动开发),这将使整个IOC / DI体验感觉非常自然。

一个好的IOC容器是AutoFac,一个非常简单但功能强大的容器。