关于C#中属性框控件PropertyGrid的使用问题求教

AJ校长 2012-04-23 11:03:16
PropertyGrid控件可以自定义自己的的属性框,对某些工具的开发非常有用,我在网上找了一些使用心得,大致弄懂了一些使用技巧,但是仍然有些疑问的地方,求教一下高手

关于属性中可放入的属性项,我看网上写的都是自定义的class,然后在class中定义固定的属性项,如下示列代码:
public class AppSettings
{
private bool saveOnClose = true;
private string greetingText = "迎接应用应用法度!";
private int itemsInMRU = 4;
private int maxRepeatRate = 10;
private bool settingsChanged = false;
private string appVersion = "1.0";

public bool SaveOnClose
{
get { return saveOnClose; }
set { saveOnClose = value;}
}
public string GreetingText
{
get { return greetingText; }
set { greetingText = value; }
}
public int MaxRepeatRate
{
get { return maxRepeatRate; }
set { maxRepeatRate = value; }
}
public int ItemsInMRUList
{
get { return itemsInMRU; }
set { itemsInMRU = value; }
}
public bool SettingsChanged
{
get { return settingsChanged; }
set { settingsChanged = value; }
}
public string AppVersion
{
get { return appVersion; }
set { appVersion = value; }
}
}



然后通过

AppSettings test =new AppSettings();
PropertyGrid1.SelectedObject = appset;

把我们自定义的属性项加到属性控件里面来,但是,下面问题来了:

如果我想加入的属性项是未知的,比如会在不同的事件中从不同的数据库表中传来不同的属性项和值,那么我该怎么定义这个类?还有其他方法可以把自定义属性项加进属性控件里面吗?
...全文
144 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
AJ校长 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
你要的其实是动态实体类,这部分我已经发过相关源码,在这个操作类中有完整的源码记录,如果你有能力看懂的话:分享高效的实体类操作类,分析其优势,可自己写替代EF的ORM框架

核心代码请从FastExpandoDescriptionProvider类开始看,或者你直接研究一个叫TypeDescriptor的类,用这个类的AddProvider方法,添加一个自定义的TypeDescriptionP……
[/Quote]
我去看看,谢谢啊
AJ校长 2012-04-23
  • 打赏
  • 举报
回复
高手呢。。。555555
qldsrx 2012-04-23
  • 打赏
  • 举报
回复
你要的其实是动态实体类,这部分我已经发过相关源码,在这个操作类中有完整的源码记录,如果你有能力看懂的话:分享高效的实体类操作类,分析其优势,可自己写替代EF的ORM框架

核心代码请从FastExpandoDescriptionProvider类开始看,或者你直接研究一个叫TypeDescriptor的类,用这个类的AddProvider方法,添加一个自定义的TypeDescriptionProvider类来实现动态属性。
胖狗_ 2012-04-23
  • 打赏
  • 举报
回复
用拼接 字符串吧。。这个就类似于在系统中,允许用户添加自定义字段。每添加一个字段,数据库里就会新增一个字段。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧