数据源的用户控制 [英] DataSource for User Control

查看:125
本文介绍了数据源的用户控制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我buidling用户控件。目前,它由一个文本框和一个按钮 - 作为一个学习的经验。这将作为一个更有用的控制的基础。

我想补充一个数据源,显示器件和ValueMember。
这是我的code的数据源。它会在属性编辑器中显示,但被禁用并变灰。我在想什么?

 私有对象MyDataSource;

    [可浏览(真)
    [TypeConverter的(System.Windows.Forms.Design.DataSourceConverter)]
    [System.ComponentModel.Bindable(真)
    公共DataSource对象
    {
        得到
        {
            返回MyDataSource;
        }
        组
        {
            如果(MyDataSource!=值)
                MyDataSource =价值;
        }
    }
 

解决方案

这是更容易的选择可能是使用一个属性提供商,而不是:

  [AttributeProvider(typeof运算(IListSource))]
 

您可以尝试使用程序集限定的名字吗?并指定编辑器?

  [类型转换器(System.Windows.Forms.Design.DataSourceConverter,System.Design,版本= 2.0.0.0,文化=中性公钥= b03f5f7f11d50a3a)
[编辑器(System.Windows.Forms.Design.DataSourceListEditor,System.Design,版本= 2.0.0.0,文化=中性公钥= b03f5f7f11d50a3a,System.Drawing.Design.UITypeEditor,System.Drawing中,版本= 2.0。 0.0,文化=中性公钥= b03f5f7f11d50a3a)
 

其实,你可以通过指定装配缩写这是版本无关的:

  [类型转换器(System.Windows.Forms.Design.DataSourceConverter,System.Design)]

 

I am buidling a user control. Currently it consists of a textbox and a button - as a learning experience. This will be used as a basis for a more useful control.

I want to add a DataSource, display member and ValueMember.
Here is my code for the datasource. It will display in the Properties editor, but is disabled and grayed out. What am I missing?

    private object MyDataSource;

    [Browsable(true)]
    [TypeConverter("System.Windows.Forms.Design.DataSourceConverter")]
    [System.ComponentModel.Bindable(true)]
    public object DataSource
    {
        get
        {
            return MyDataSource;
        }
        set
        {
            if (MyDataSource != value)
                MyDataSource = value;
        }
    }

解决方案

An easier option may be to use an attribute provider instead:

[AttributeProvider(typeof(IListSource))]

You could try using the assembly-qualified name? and specifying the editor?

[TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
[Editor("System.Windows.Forms.Design.DataSourceListEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.Drawing.Design.UITypeEditor, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]

Actually, you can abbreviate this to be version-independent just by specifying the assembly:

[TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design")]
[Editor("System.Windows.Forms.Design.DataSourceListEditor, System.Design", typeof(UITypeEditor))]

这篇关于数据源的用户控制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆