Rah*_*han 8 c# generics reflection winforms
我正在创建一个接受T的通用Windows窗体,并使用自定义属性的反射在运行时创建标签和输入控件.
例:
class GenericForm<T>: Form where T : ICloneable<T>
{
}
Run Code Online (Sandbox Code Playgroud)
这是表单代码的上一个问题的链接:SO Question.
此表单可以接受以下实体类作为示例:
class Vehicle: ICloneable<Vehicle>
{
public int Id { get; set; }
public int Name { get; set; }
public int Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
您可以想象,表单背后的魔力将使用反射来确定数据类型,验证标准,要使用的首选控件类型等.
而不是重新发明轮子,我认为如果有人知道这样的框架,那么就值得询问.不用说,我正在寻找一些简单而不是庞大的框架.
据我所知,没有任何框架可以在运行时生成 UI 代码。之前有很多工具(代码生成器)可以执行此操作。但是您不会拥有“仅”更改代码的优势 - 您需要启动代码生成器的额外步骤。
如果您确实想在运行时创建 UI 信息 - 我会为您的属性生成属性,这将告诉您的 UI 生成器如何处理此属性(如果没有给出属性 - 为您的数据类型设置默认值)。这需要大量编码,但可以为您将来的中小型项目节省时间。
您可以做的另一件事是将 UI 信息外部化到 XML 文件中,并为该文件提供一个生成器。实际上有一个框架可以做到这一点 - 看看re-motion框架。我不知道 UI 部分是否免费,但它有一些功能(即 mixins)可以帮助您完成任务。
| 归档时间: |
|
| 查看次数: |
2926 次 |
| 最近记录: |