问题
如何绑定
System.Windows.Forms.CheckedListBox
?
我尝试了什么
班级
public class Foo { public string Description { get; set; } public bool isSelected { get; set; } }
用法
List<Foo> fooList = new List<Foo>(); Foo foo = new Foo(); foo.Description = "One"; foo.isSelected = true; fooList.Add(foo); foo = new Foo(); foo.Description = "Two"; foo.isSelected = false; fooList.Add(foo); foo = new Foo(); foo.Description = "Three"; foo.isSelected = true; fooList.Add(foo); var fooBindingList = new BindingList<Foo>(fooList); var source = new BindingSource(fooBindingList, null); clbFoo.DataSource = source; clbFoo.DisplayMember = "Description"; clbFoo.ValueMember = "isSelected";
结果
DisplayMember可见,但未选中复选框。
编辑:我最初在问题中加入了“单向绑定”,但无论是单向还是双向绑定都没关系,所以我删除了“一个 - “从问题出发。
编辑:我知道这可以手动完成。我想知道是否可以通过绑定来完成。
foreach (Foo item in fooList)
{
clbFoos.Items.Add(item, item.isSelected);
}