C# 通用Windows窗体模板
我正在创建一个通用Windows窗体,它接受T并使用带有自定义属性的反射在运行时创建标签和输入控件 例如:C# 通用Windows窗体模板,c#,winforms,generics,reflection,C#,Winforms,Generics,Reflection,我正在创建一个通用Windows窗体,它接受T并使用带有自定义属性的反射在运行时创建标签和输入控件 例如: class GenericForm<T>: Form where T : ICloneable<T> { } 类GenericForm:其中T:ICloneable的形式 { } 这里有一个链接,指向表单代码的上一个问题: 此表单可以接受以下实体类作为示例: class Vehicle: ICloneable<Vehicle>
class GenericForm<T>: Form where T : ICloneable<T>
{
}
类GenericForm:其中T:ICloneable的形式
{
}
这里有一个链接,指向表单代码的上一个问题:
此表单可以接受以下实体类作为示例:
class Vehicle: ICloneable<Vehicle>
{
public int Id { get; set; }
public int Name { get; set; }
public int Description { get; set; }
}
class车辆:可克隆
{
公共int Id{get;set;}
公共int名称{get;set;}
公共int描述{get;set;}
}
可以想象,表单背后的魔力是使用反射来确定数据类型、验证标准、要使用的首选控件类型等
我认为与其重新发明轮子,不如问问是否有人知道这样的框架。不用说,我正在寻找简单的框架,而不是笨重的框架。据我所知,没有在运行时生成UI代码的框架。以前有很多工具(代码生成器)可以这样做。但是,您没有“仅”更改代码的优势—您需要额外的一步来启动代码生成器 如果您真的想在运行时创建UI信息,我会为您的属性生成属性,这将告诉您的UI生成器如何处理此属性(如果没有提供属性,则为您的数据类型设置默认值)。这需要大量的编码,但可以为将来的中小型项目节省时间
您可以做的另一件事是将UI信息外部化到XML文件中,并为该文件提供一个生成器。实际上有一个框架可以做到这一点——看看这个框架。我不知道UI的部分是否免费,但它有一些功能(即mixin),可以帮助您完成任务。可以动态生成UI。在一个简单的例子中,程序员只会创建业务实体,根本不关心UI。我们在工作中使用这种类型的东西(有点)。我只读过LightSwitch,没有尝试过。据我所知,它独立于Visual Studio,更适合应用程序的子集。我不确定“它独立于Visual Studio”是什么意思。是的,它是一个单独的Microsoft产品,您必须获得许可。不,它不是一个单独的应用程序,它更像是一个VisualStudio插件。如果不知道您打算用它创建什么类型的应用程序,就很难知道Lightswitch是否适合。看到您正在使用Winforms生成,可能不是因为Lightswitch生成Silverlight应用程序。。。我的文章发表已经15个小时了,我终于想出了自己的自定义属性框架和一个windows窗体,它可以接受任何类,同时支持大多数clr类型。它允许您传递