CheckedListBox.Items 中每个项目的类型是什么?

odi*_*seh 5 .net checkedlistbox winforms

我需要知道 中每个元素的类型是什么CheckedListBox.Items?是ListViewItemObject还是什么?

我还想知道如何将 a 绑定DataTable到 aCheckedListBox并在 Windows 窗体中设置每个项目的 ID 和文本?

Joã*_*elo 4

类型取决于您用于填充选中列表框的对象。您可以DataTable使用以下代码来使用 a:

var table = new DataTable();

table.Columns.Add("ID");
table.Columns.Add("NAME");

table.Rows.Add("1", "John Doe");
table.Rows.Add("2", "Jane Doe");

this.checkedListBox1.DataSource = table;
this.checkedListBox1.ValueMember = "ID";
this.checkedListBox1.DisplayMember = "NAME";
Run Code Online (Sandbox Code Playgroud)

在这种情况下,由于您将在检查一个或多个项目后使用操作填充已检查的列表框,DataTable因此this.checkedListBox1.CheckedItems将输出一个ObjectCollection集合中的每个项目都是一个DataRowView实例的信息。

要获取已检查的项目,您可以执行以下操作:

var checkedIds = new List<string>();

foreach (var item in this.checkedListBox1.CheckedItems)
{
    var dataRowView = (DataRowView)item;

    checkedIds.Add((string)dataRowView["ID"]);
}
Run Code Online (Sandbox Code Playgroud)