我正在尝试将bindingSource声明为控件通用
中的通用public partial class ABMControl<T> : UserControl
{
public ABMControl()
{
InitializeComponent();
}
}
partial class ABMControl<T>
{
...
private void InitializeComponent()
{
...
this.bindingSource.DataSource = typeof(T)
...
}
...
}
但是在设计师中这就是问题所在:
无法解析方法'InitializeComponent'。解析器报告了 跟随错误'不支持类型参数参数名称: typeSymbol”。请查看任务列表中的潜在错误。
答案 0 :(得分:3)
要防止设计器错误,请在构造函数中设置绑定源的数据源。
当你在控件设计器的构造函数中放入一段代码时,反序列化器不会尝试解析它。它也不会在你的控件的设计时间内运行,而在运行时和派生控件中,它也会运行。
以下是防止错误的必要条件:
public partial class ABMControl<T> : UserControl
{
public ABMControl()
{
InitializeComponent();
this.bindingSource.DataSource = typeof(T)
}
}
有关设计师工作原理的更多信息,请查看以下文章,特别是看一下包含几个错误但展示设计师的示例: