0

我有一个 BindingSource 的子类,它只是为了满足我们的特殊需要而对其进行了一些扩展,我想为 VS2008 Designer 支持它。

我有三个属性,我想获得设计师的支持,其中两个应该Control在表单上设置为 other s,一个应该设置为 a Type

在 den Designer 中显示它们以及设置默认值 null 非常容易,但是我如何设法让 VS 选择可用的 Controls (理想情况下只有所需的类型)和或Types ?

这是到目前为止的属性代码,欢迎任何提示,因为我对 VS-Designer 支持一无所知。

public class BindingSourceEx
    : BindingSource
{
    [DisplayName("DataSourceType")]
    [Description("Sets the type to bind to.")]
    public Type DataSourceType
    {
        get;
        set;
    }

    [DisplayName("BindingNavigator")]
    [DefaultValue(null)]
    [Description("Sets the BindingNavigatorQ1 to use.")]
    public BindingNavigatorEx BindingNavigator
    {
        get;
        set;
    }

    [DisplayName("DataGridView")]
    [DefaultValue(null)]
    [Description("Sets the DataGridViewQ1 to use.")]
    public DataGridViewEx DataGridView
    {
        get;
        set;
    }
}
4

1 回答 1

1

设计器的默认实现已经处理了 BindingNavigator 和 DataGridView 属性。属性网格使用组合框让您选择与控件类型匹配的控件。例如,您必须在表单上放置一个 BindingNavigatorQ1 控件才能在组合框中获得除 None 以外的任何内容。

Type 属性更难,您至少需要一个 TypeConverter 来在 Type 值和字符串之间进行转换。不太确定这应该是一个可设计的属性,您要绑定的类型在设计时肯定还不存在,只有在编译所有程序集的运行时才存在。

于 2010-02-04T14:58:25.877 回答