WinForms Checked ListBoxアイテムのタグプロパティを使用するにはどうすればよいですか?
-
03-10-2019 - |
質問
このようなc#winformsコードを書くにはどうすればよいですか?
CheckEdListBoxアイテムには、「タグ」および「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";
}
解決
タグプロパティはありませんが、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
});
}
所属していません StackOverflow