从C#POCO类生成Winforms表单的代码

本文关键字:表单 代码 Winforms C#POCO | 更新日期: 2023-09-27 18:14:43

是否已经编写了一些开源代码,可以接受具有属性和验证属性的类,并输出具有与这些属性对应的控件的Windows窗体?

示例:

public bool IsRed { get; set; }

生成一个带有Is Red?标签的复选框。

public int NumberOfDays { get; set; }

生成一个标签为Number of Days的文本框,并将输入限制为仅数字字符。

[Required]
public Color Color { get; set; }

其中Color是形式的枚举

public enum Color
{
    Red,
    Green,
    Blue
}

生成一个组合框,其中的列表填充有RedGreenBlue,并使其成为必需。

理想情况下,生成的代码包括一个方法,该方法接受我的类的实例,并用实例属性中的值预填充winform中的控件。相应地,另一个方法将控件中的现有值保存到我的类的实例中。

有这样的东西吗?


请注意:我不是在寻找:

  1. ORM或DAL
  2. 像CodeSmith这样的通用工具,除非它是免费和开源的
  3. WPF或ASP.NET代码,它需要是Winforms
  4. NetTiers或任何类似类型的完整应用程序框架,除非我能解析出其中专门适用于此场景的一小部分

从C#POCO类生成Winforms表单的代码

PropertyGrid的功能提取到您自己的托管控件中"非常容易",但这只能满足您的一半需求。至少阅读TypeConverterTypeDescriptorPropertyDescriptor

还可以查看:codeproject.com/KB/custom-controls/xac_propertygrid.aspx,这基本上是将PropertyGrid的功能公开到网页上,但它会给你一些想法。

我知道这不是一个完整的答案,但应该为编写/编写这样一个工具指明正确的方向。

如果WinForms有这样一个脚手架工具,那就太好了:(