【发布时间】:2013-12-12 22:07:09
【问题描述】:
我有一个包含两个 ComboBox 的表单。我想使用第二个(子)ComboBox 根据用户对第一个项目的选择来显示子对象列表。
当窗体实例化时,我将两个控件数据绑定到私有 List
private List<ParentWidget> _parentList;
private List<ChildWidget> _childList;
public FormExample()
{
InitializeComponent();
_parentList = GetParentWidgets();
_childList = new List<ChildWidget>();
cmbParent.DisplayMember = "WidgetName";
cmbParent.ValueMember = "ID";
cmbParent.DataSource = _parentList;
cmbChild.DisplayMember = "WidgetName";
cmbChild.ValueMember = "ID";
cmbChild.DataSource = _childList;
}
当父选择的索引发生变化时,我会用适当的对象填充_childList。
问题是子 ComboBox 从不显示集合中的任何对象。如果我在数据绑定之前用至少一个 ChildWidget 填充集合,它会起作用,但我希望它从空开始。
如果我从another answer 中正确理解,这将失败,因为空列表不包含任何要绑定的属性。但是,我绑定到特定类(Widget)而不是通用对象。这对数据绑定来说还不够吗?
【问题讨论】:
标签: c# winforms data-binding