我有两个实体:
public class Address
{
public string Street, City, State;
}
public class Customer
{
public int Id;
public string Name;
public Address Address;
}
我有一个WinForms表单,其中1个文本框用于客户名称,1个用户控件用于地址。用户控件为每个地址属性有3个文本框。表格中有一位客户' bindingsource和usercontrol一个地址' BindingSource的。用户控件看起来像这样:
[DefaultBindingProperty("Address")]
public partial class AddressBox : UserControl
{
private Address address;
[Bindable(BindableSupport.Yes, BindingDirection.TwoWay)]
[Browsable(false)]
public Address Address
{
get { return address; }
set
{
address = value;
bindingSource.DataSource = address;
}
}
}
在deisgn模式下,我设置了表单的数据名称和用户控件。但是,一旦我设置地址usercontrol的数据名称,我就会出现上述错误,无法在设计模式下打开表单。
我在这里错过了什么吗?
答案 0 :(得分:2)
修复设计时错误 我从表单和用户控件的构造函数和InitializeComponent中删除了所有绑定源创建,数据源分配和控件数据绑定添加,并将其包装在方法中,调用它:
在这个特定的主子绑定中,从主窗体加载调用时,子用户控件失败,因为所有连线都已设置,但尚未分配给它...
关于实际实施: 我想可能有一种更优雅的方式来使用属性来做到这一点。我的方式是这样的:
示例屏幕截图,' next'提升绑定源位置,循环结束:
完成以下:
的实施