在我的 wpf 应用程序中动态创建表单

发布于 2024-12-27 18:55:13 字数 378 浏览 0 评论 0原文

我正在开发一个基于 Microsoft WPF 和 C# 的服务台系统。

自从我的上级提出新的方向以来,一切都很顺利。基本上我必须在我的应用程序中创建一个表单构建器。这样做的需要取决于我的服务台的通用程度。

例如:

  • 项目 1:加载票证系统的所有通用输入。
  • 项目 2:加载票务系统的所有通用输入以及另外两个字段(从数据库加载数据的组合框和一系列复选框)
  • 项目 3:必须是具有新输入类型的全新表单。
  • 项目 N:等等.. 等等。

事实上,我无法在每次新项目进入时重新编译我的应用程序。我正在考虑创建一个新部分,仅用于注册新项目,然后启用构建该项目的具体形式。

我应该怎么办 ?是否可以 ?

I'm developing a service desk system based on Microsoft WPF and C#.

Everything went fine since a new orientation of my superiors that came out. Basically i have to create a FORM BUILDER inside my application. The need of this is based in how generic my service desk would be.

For example:

  • Project 1 : Load all the generic inputs for the ticket system.
  • Project 2 : Load all the generic inputs for the ticket system PLUS two another fields (combo box loading data from a database and a sequence of checkboxes)
  • Project 3 : Must be a completely new form with new input types.
  • Project N : etc.. etc..

The fact is that i can´t recompile my application every time a new project comes in. I'm thinking in create a new section just for registering new projects and then enable the possibility to build the specific form for this project.

What should i do ? is it possible ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黄昏下泛黄的笔记 2025-01-03 18:55:13

MEF 可能会有所帮助。

  • 创建一个 Composer EXE
  • 创建一个合同 DLL,定义合同/属性
  • 创建扩展 DLL(每个表单一个)
  • Composer 应用程序和扩展 DLL 应引用合同

一旦您拥有了 Composer EXE 和合同 DLL,您只需要编译新的扩展 DLL。

如果您根本不想编译,那么您将需要做更多的工作,并且这个答案可能不是您的解决方案的模板。

MEF may help.

  • Create a composer EXE
  • Create a contracts DLL, defining your contracts/attributes
  • Create extension DLLs (one for each form)
  • Composer app and extension DLLs should reference contracts

Once you have the composer EXE and contracts DLL in place, you will only need to compile new extension DLLs.

If you don't want to compile at all, then you'll have what seems like way more work and this answer may not be the template to your solution.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文