【问题标题】:Code-Generating a Winforms form from a C# POCO Class从 C# POCO 类代码生成 Winforms 表单
【发布时间】:2011-12-29 05:31:35
【问题描述】:

是否已经在某处编写了一些开源代码,这些代码将接受具有属性和验证属性的类,并输出带有与这些属性对应的控件的 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 的东西?那么分解成控件的呢?
  • 类似的东西。我正在为打包的文件结构构建编辑器,其中包含大量需要编辑器的不同数据结构,因此最好从这些数据结构中删除一些 Windows 窗体(我已经有相应的类或结构)作为起点。

标签: c# winforms code-generation


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2014-08-30
    • 1970-01-01
    • 2015-06-11
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多