当前位置:  开发笔记 > 编程语言 > 正文

无法绑定到DataSource上的属性或列名称.参数名称:dataMember

如何解决《无法绑定到DataSource上的属性或列名称.参数名称:dataMember》经验,为你挑选了1个好方法。

当我尝试绑定到System.Type.Name时,这是我遇到的异常.

这是我正在做的事情:

this.propertyTypeBindingSource.DataSource = typeof(System.Type);

/* snip */

this.nameTextBox1.DataBindings.Add(
    new System.Windows.Forms.Binding(
        "Text", 
        this.propertyTypeBindingSource, 
        "Name", true));

是否有一些绑定到System.Type的技巧,是不允许的还是有任何解决方法?绑定到其他类型没有问题.



1> Marc Gravell..:

实际上,对Type有特殊处理......这种方法在IDE等中用于提前配置元数据.如果你看看IDE生成的绑定,他们会做以下事情:

bindingSource1.DataSource = typeof(MyObject);

说"当我们获得真实数据时,我们期望MyObject isntance(s)"; 即当你要求"Name"时,它在MyObject上寻找name属性- 而不是Type实例的Name.这允许网格等获取其元数据而无需等待实际数据; 但结果你不能绑定到"真实"类型.

System.ComponentModel代码在简单绑定和列表绑定(提供或接受货币管理器)之间是相同的,因此简单绑定也会继承此行为.同样,您不能绑定到实现IList/IListSource的类的属性,因为这是以特殊方式解释的.

你的额外课程似乎是一种合理的方法

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有