checklistbox怎么没有数据源?如何绑定到值列表?

nch*_*che 14 c# checkedlistbox winforms

我正在开发Winform,我需要一个checkedlistbox.我将值存储在具有List属性的对象中:

public static class Fields
{
    public static IList<string> FieldList { get; set; }

    static Fields()
    { ...//populate FieldList }
}
Run Code Online (Sandbox Code Playgroud)

现在我希望我的CheckedListBox使用Fields.FieldList作为数据源.在线搜索后,我发现我需要设置

//in myForm_Load
mycheckedListBox.DataSource = Fields.FieldList;
Run Code Online (Sandbox Code Playgroud)

但myCheckedListBox没有DataSource属性.

我在这里错过了什么吗?

Dav*_*vid 16

根据文档,它应具有此属性... http://msdn.microsoft.com/en-us/library/system.windows.forms.checkedlistbox.datasource(VS.90).aspx

但是,我在前一个项目中也遇到了同样的问题,并使用这个CodeProject文章来编写我需要此功能的项目中的解决方案.

研究了一下,我发现了这个:

http://connect.microsoft.com/VisualStudio/feedback/details/115199/checkedlistbox-datasource-displaymember-valuemember-are-hidden

编辑:以上链接不再有效,但下面的例外情况来自曾经居住过的文章.

由Microsoft发布于5/30/2005上午10:28
感谢您的反馈,但这是设计的.我们不支持CheckedListBox控件上的数据绑定.这些属性继承自它的基类,无法删除,因此我们将它们隐藏在属性网格和IntelliSense中.

这解释了为什么属性存在,但在Intellisense中没有显示.

这篇博文也值得一读:http://waxtadpole.wordpress.com/2009/10/12/assigning-custom-class-to-checkedlistbox-datasource/

  • 即使它将编译,当您尝试设置DataSource时,您将获得运行时NullReferenceException. (2认同)