私はWinFormsが新しく、追加データをListViewItem
に追加する方法を理解できません。私はMFCでSetItemDataPtr
を使用することができますが、WinFormsでこれを行う方法を覚えていますか?WinForms ListViewItemに追加データを追加する
答えて
ListViewItem.Tagプロパティを使用すると、SetItemDataPtr()に相当するオブジェクトへの参照を格納できます。 Nameプロパティは、辞書<のキーとして機能するのに便利です。また、IndexプロパティはList <>のインデックスに役立ちます。後者の2つのアプローチがより良い解決策です。通常は、データをビューから切り離しておく必要があります。
MSDNでListViewItemクラスを調べましたか?そこにはサンプルと共に豊富な情報があります。
// Create three items and three sets of subitems for each item.
ListViewItem item1 = new ListViewItem("item1",0);
// Place a check mark next to the item.
item1.Checked = true;
item1.SubItems.Add("1");
item1.SubItems.Add("2");
item1.SubItems.Add("3");
ListViewItem item2 = new ListViewItem("item2",1);
item2.SubItems.Add("4");
item2.SubItems.Add("5");
item2.SubItems.Add("6");
ListViewItem item3 = new ListViewItem("item3",0);
// Place a check mark next to the item.
item3.Checked = true;
item3.SubItems.Add("7");
item3.SubItems.Add("8");
item3.SubItems.Add("9");
1つの方法:独自のクラスを作成する必要があります(例:MyItem
)。List<MyItem>
にアイテムを配置します。次に、データバインディングを使用します。クラスMyItem
は、文字列を返すToString()
メソッドを実装する必要がありますが、ListViewに表示されます。
最も推奨される方法は、ListViewItem
から派生して独自のクラスを作成し、このクラスのインスタンスをListView
に追加することです。この方法で、アイテムに任意のデータを保存することができます。
- あなたの項目データがタイプセーフにすることができ、あなたが各アクセスにObjectからキャストする必要はありません。
これは、いくつかの理由により、
Tag
プロパティを使用するよりも優れています。 - 複数の値を格納できます。
- オブジェクト指向プログラミングの方が正しいです。
- 潜在的な将来の拡張によって、
Tag
プロパティを自由に使用できるようにします。
最初の箇条書きは正確ではありませんが、Itemから参照を取得するときにListViewItemからキャストする必要があります。 –
Trueですが、ListViewItemをキャストして、すべてのデータプロパティに安全にアクセスしてから、データのTagプロパティをキャストしたいとは思わないでしょうか? – Ran
- 1. ListViewItemにコンボボックスを追加します。
- 2. winformsにADO.Netデータソースを追加する
- 3. コンボボックスをdatagridviewに追加するC#Winforms
- 4. Winforms TableLayoutPanelプログラムで行を追加する
- 5. WinFormsを追加するAppメニュー項目
- 6. ミュールペイロードに追加データを追加するには?
- 7. C#WinFormsコンテキストメニューにチェックボックスを追加
- 8. 追加BLOBデータ
- 9. Listview - データを追加する
- 10. ExtJSはフォームの投稿に追加データを追加します
- 11. C#xlsxにデータを追加
- 12. Ajax - データをURLに追加
- 13. FileStreamトップにデータを追加
- 14. モーダルダイアログにデータを追加
- 15. Gridviewにデータを追加するには?
- 16. ラベルにデータを追加するには
- 17. NSMutableStringデータ追加エラー
- 18. 追加はデータが
- 19. Winforms UserControlsの追加と削除
- 20. プッシュでデータを追加するには
- 21. PJAXリクエストにデータを追加する
- 22. 動的にデータを追加する
- 23. データ行を動的に追加する
- 24. SQL Update:セルにデータを追加する
- 25. DataGridView列にデータを追加する
- 26. プログラムでUITextFieldにデータを追加する
- 27. キューにデータを追加するベストプラクティス
- 28. getusermediaデータをmediasourceに追加する
- 29. JTableにarraylistデータを追加する
- 30. データベースにデータを追加するAndroid
ありがとうございます。 –
@Sanja Melnichuk:インデックスは、リスト内のアイテムの順序も制御するため、アイテム内の任意のデータを格納するために適切なインデックスではありません。名前には、名前にスペースを使用しない、同じ名前の複数の項目をサポートしないなど、いくつかの制限があります。 ListViewItemからクラスを派生させ、このアイテムのメンバーとしてデータを定義することを強くお勧めします。以下の私の答えを参照してください... – Ran