如何编写像这样的C#winforms代码?
CheckedListBox项目没有“Tag”和“ValueMember”属性。
我知道有很多替代方案。但我需要这样做。
private void LoadPermissionsToCheckedListBox()
{
Role selectedRole = (Role)comboBox1.SelectedItem;
int i = 0;
foreach (Permission p in selectedRole.PermissionItems)
{
checkedListBox1.Items.Add(p);
checkedListBox1.Items[i].Tag = p;
}
checkedListBox1.DisplayMember = "PermissionKey";
checkedListBox1.ValueMember = "PermissionID";
}
答案 0 :(得分:4)
没有Tag属性,但CheckedListBox接受任何对象(您不必只在其中放置字符串)。您可以创建自定义类来保存数据:
public class CheckListBoxItem
{
public Permission Tag;
public string Text;
public override string ToString() { return Text; }
}
然后将此对象添加为项
foreach (Permission p in selectedRole.PermissionItems)
{
checkedListBox1.Items.Add(new CheckListBoxItem()
{
Tag = p,
Text = p.PermissionKey
});
}