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

C# WPF中针对不同客户的不同GUI定义,c#,wpf,user-interface,C#,Wpf,User Interface,我有一个项目,是为不同的客户定制的,只在用户界面。所有的代码都完全相同 现在,我复制整个项目,为客户获得不同的UI(主要是按钮对齐)。是否可以只交换UI定义/指定在构建过程中使用哪个,这样我就不需要复制整个项目 比如: UI_cust1 UI_cust2 UI_cust3 ... 建造 UI_cust2 能否提供从XML文件读取值的类的配置提供程序类型 然后,您可以根据每个客户编辑XML 我认为,如果创建提供程序作为数据源,然后包含一个转换器,该转换器将键作为参数返回特定值,那么应该能够为要

我有一个项目,是为不同的客户定制的,只在用户界面。所有的代码都完全相同

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

比如:

UI_cust1
UI_cust2
UI_cust3
...
建造

UI_cust2

能否提供从XML文件读取值的类的配置提供程序类型

然后,您可以根据每个客户编辑XML

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


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

我建议您养成在所有项目中使用(控制反转)容器的习惯。它迫使您使用,这为您提供了一个更模块化的体系结构

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

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


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

您可能想使用factory模式您的意思是本地化吗:?如果底层代码相同,为什么不为客户使用主题呢?除了Dreamwalkers的评论,您可能想开始阅读主题/样式