TypeConverter能否自定义属性的设计器具体实现代码?

烤火的鱼 2018-08-18 12:44:42
TypeConverter能否实现属性的设计器具体实现代码?
我创建了一个自定义控件,里面有个string类型的属性:
public string FieldName { get; set; }
拖到窗体上,就可以直接在属性窗口里面赋值了,假如我们设置值为"StopName",在设计器自动生成的代码中,会自动产生下面的代码:
private void InitializeComponent()
{
this.testPro1 = new CommonLib.TestPro();
this.SuspendLayout();
//
// testPro1
//
this.testPro1.FieldName = "StopName";
……
}
直接生成了字符串,但这不是我需要的,我创建了另外一个模型,希望根据模型的属性进行赋值,假如模型为:
public class StopinfoItem
{
public string StopName { get; set; }
public int Code { get; set; }

}
我希望上面的代码变成
this.testPro1.FieldName =nameof(StopinfoItem.StopName);
这样,如果模型有变动,编译就能报错,而直接字符串的话,会逃过编译器的检查,错了都不知道,也就是自定义InitializeComponent中真正的代码部分,是否可以通过TypeConverter的ConvertFrom返回?
.NET 为4.0
...全文
210 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
烤火的鱼 2018-08-18
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
你自己定义setter不就成了
protected string _fieldname;
public string FieldName
{
get {return _fieldname;}
set {
对value做判断;
_fieldname=value;
}
}

指设计器里面,自定义编辑器等都实现了,也就是在窗体的InitializeComponent()方法里面自动创建的代码,我看了BindingSource控件在InitializeComponent()里面可以用typeof(StopinfoItem)赋值,因为需要实现一下智能的功能,希望通过一个计算方法进行字符串赋值,而不是直接字符串.
stherix 2018-08-18
  • 打赏
  • 举报
回复
你自己定义setter不就成了
protected string _fieldname;
public string FieldName
{
get {return _fieldname;}
set {
对value做判断;
_fieldname=value;
}
}

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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