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

标签 c# winforms code-generation

是否已经在某个地方编写了一些开源代码,这些代码将接受具有属性和验证属性的类,并输出带有与这些属性对应的控件的 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
}

生成一个组合框,其中包含填充有 Red GreenBlue 的列表,并使其成为必需项。

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

有类似的东西吗?


请注意:我不是在寻找:

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

最佳答案

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

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

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

如果 WinForms 有这样的脚手架工具就好了 :)

关于c# - 从 C# POCO 类代码生成 Winforms 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8131821/

相关文章:

c++ - 是否可以使用 dbusxx-xml2cpp 生成非阻塞调用?

visual-studio - 我从哪里获得 IVsSingleFileGenerator?

c# - 如何在需要用户登录的 ASP.Net 页面中使用 wkhtmltopdf

c# - 在 .NET 中禁用 ChromeDriver 扩展

c# - DateTime ToFileTime 和 ToFileTimeUtc 具有相同的输出

WinForms ListView 空行故障

c# - 我应该避免在 winforms 的后台线程上做什么

c# - 如何确保只打开一个表单实例?

php - 从 PHP 类生成页面

c# - C# SSH .Net 库中的 Sudo 命令