用于用户控制的数据源
问题描述:
我正在构建用户控件。目前它由一个文本框和一个按钮组成 - 作为学习体验。这将被用作更有用的控制的基础。用于用户控制的数据源
我想添加一个DataSource,显示成员和ValueMember。
这是我的数据源代码。它将显示在属性编辑器中,但被禁用并变灰。我错过了什么?
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;
}
}
答
更容易的选择可能是使用一个属性提供商,而不是:
[AttributeProvider(typeof(IListSource))]
你可以尝试使用该程序集限定的名字吗?并指定编辑器?
[TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design")]
[Editor("System.Windows.Forms.Design.DataSourceListEditor, System.Design", typeof(UITypeEditor))]
:
[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")]
其实,你可以通过指定装配缩写这是版本无关