【问题标题】:Different GUI definitions in a WPF for different customersWPF 中针对不同客户的不同 GUI 定义
【发布时间】:2014-09-19 19:02:16
【问题描述】:

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

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

类似:

UI_cust1
UI_cust2
UI_cust3
...

使用构建

UI_cust2

【问题讨论】:

标签: c# wpf user-interface


【解决方案1】:

您能否提供一个从 XML 文件中读取值的配置提供程序类型的类?

然后您可以编辑每个客户的 XML。

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

我过去曾做过类似的本地化和主题化解决方案,而且效果很好。不幸的是,我没有立即拿到代码。

【讨论】:

    【解决方案2】:

    我建议您养成在所有项目中使用IOC(控制反转)容器的习惯。它强制你使用Dependency Injection,它为你提供了一个更加模块化的架构。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      • 1970-01-01
      • 2018-07-10
      相关资源
      最近更新 更多