ListViewSubtemCollectionはそのキーに何を使用しますか?
質問
一部のListViewSubItemsの値を取得しようとしていますが、キーにどの値が使用されているのかわかりません。簡単なコードがいくつかあります:
protected override void OnItemDrag(ItemDragEventArgs e)
{
base.OnItemDrag(e);
ListViewItem item = e.Item as ListViewItem;
string val = item.SubItems[???].ToString();
}
???一部は私が問題を抱えている場所です。キーが何であるかわかりません。 ListViewの列名を試してみましたが、うまくいきません。数値インデックスを使用する代わりに、この方法を使用したいと思います。
解決
ListViewSubItem
のキーは、
列名と同じ名前を設定すると、列の名前でSubItemsにインデックスを付けることができます。
そして例としてのコード
ListViewItem myListViewItem = new ListViewItem();
ListViewItem.ListViewSubItem myListViewSubItem = new ListViewItem.ListViewSubItem();
myListViewSubItem.Text ="これが表示されます&quot ;;
myListViewSubItem.Name =" my key&quot ;;
myListViewItem.SubItems.Add(myListViewSubItem);
ListViewItem.ListViewSubItem subItem = myListViewItem.SubItems [" my key"];
他のヒント
列のインデックスはサブアイテムの追加にのみ使用できますが、各列のインデックスを含む列挙を作成することで読みやすくすることができます。
サブアイテムは、不幸なことに列インデックスによってのみ順序付けられます。したがって、次のようにアクセスする必要があります。
protected override void OnItemDrag(ItemDragEventArgs e)
{
base.OnItemDrag(e);
ListViewItem item = e.Item as ListViewItem;
string val = item.SubItems[0].ToString();
}