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

Rob*_*vey 5 c# code-generation winforms

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

例子:

public bool IsRed { get; set; }
Run Code Online (Sandbox Code Playgroud)

生成带有Is Red?标签的复选框.

public int NumberOfDays { get; set; }
Run Code Online (Sandbox Code Playgroud)

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

[Required]
public Color Color { get; set; }
Run Code Online (Sandbox Code Playgroud)

其中Color是表单的枚举

public enum Color
{
    Red,
    Green,
    Blue
}
Run Code Online (Sandbox Code Playgroud)

生成一个组合框,其中包含用Red Green和填充的列表Blue,并使其成为必需项.

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

有没有这样的东西?


请注意:我不是在寻找:

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

lep*_*pie 1

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

另请查看:codeproject.com/KB/custom-controls/xacc_propertygrid.aspx,这基本上将 的PropertyGrid功能公开给网页,但它会给您一些想法。

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

如果 WinForms 存在这样的脚手架工具,那就太好了:)