将BindingSource.DataSource声明为泛型。

3

我正在尝试在控件泛型中将bindingSource声明为泛型。

public partial class ABMControl<T> : UserControl
{
    public ABMControl()
    {
        InitializeComponent();
    }
}
partial class ABMControl<T>
{
    ...
    private void InitializeComponent()
    {
        ...
        this.bindingSource.DataSource = typeof(T)
        ...
    }
    ...
}

在设计器中出现了问题: 无法解析方法'InitializeComponent'。 解析器报告了以下错误:“不支持类型参数 参数名称:typeSymbol”。 请查看任务列表以查找可能的错误。

当我将BindingSource绑定到实体时,从设计器中的语法如下: this.bindingSource.DataSource = typeof("entity") - Federico Fia Sare
1个回答

3
为了避免设计师错误,在构造函数中设置绑定源的数据源。
当您将代码放入控件设计器的构造函数中时,反序列化程序不会尝试解析它。在控件的设计时,它也不会运行,但在运行时以及派生控件中,它将运行。
以下是为防止错误所需的内容:
public partial class ABMControl<T> : UserControl
{
    public ABMControl()
    {
        InitializeComponent();
        this.bindingSource.DataSource = typeof(T)
    }
}

如果您想了解更多有关设计师如何工作的信息,请查看以下文章,特别是查看包含一些错误但显示设计师的示例:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接