我试图在控件通用中将bindingSource声明为通用
public partial class ABMControl<T> : UserControl
{
public ABMControl()
{
InitializeComponent();
}
}
partial class ABMControl<T>
{
...
private void InitializeComponent()
{
...
this.bindingSource.DataSource = typeof(T)
...
}
...
}
但是在设计器中这是个问题:
无法解析方法“ InitializeComponent”。解析器报告了
以下错误'不支持类型参数参数名称:
typeSymbol”。请在任务列表中查找潜在的错误。
最佳答案
为了防止设计人员出错,请在构造函数中设置绑定源的数据源。
当您在控件的构造函数中放置一段代码时,反序列化器将不会尝试解析它。它也不会在控件的设计时运行,而在运行时以及派生控件中,它将运行。
这是您必须采取的预防错误措施:
public partial class ABMControl<T> : UserControl
{
public ABMControl()
{
InitializeComponent();
this.bindingSource.DataSource = typeof(T)
}
}
有关设计师如何工作的更多信息,请参见以下文章,特别是看看该示例,其中包含一些错误,但显示了设计师:
Can't view designer when coding a form in C#