...または管理するC#listviews本当に悪夢ですか?ListViewの選択イベント処理で何か不足しています
私が取り組んでいる問題は非常に簡単です。または少なくともそれはそうであるように見えます:
私は別々の行に顧客の注文に関する情報を含むテキストファイルを持っています。データ項目はセミコロンで区切られています。
私のフォームはこれらの注文を反復し、アイテム情報をハッシュテーブルに入れ、各ハッシュテーブルをマスターハッシュテーブルに入れます。各注文(商品/注文番号/顧客名/顧客番号)に関するいくつかのサマリー情報が、ソート可能な列で区切られたリストビューに表示されます。リストビューの下には、3つのタブにまたがる注文詳細の編集可能部分のテキストボックスを含むタブコントロールがあります。ここで
は私が起こるしたいものです。
- ユーザーは単一のエントリをクリック:タブコントロールのテキストボックスには、注文の詳細を記入してください。
- ユーザーがタブコントロールの詳細を編集します。
- ユーザーが別の注文をクリックする:確認メッセージが変更をコミットするかどうかをチェックし、「はい」の場合、詳細を関連するHashtableに保存し、リストビューの表示を更新します。
- ユーザーは複数のリストビュー項目を選択します。先頭の項目はタブコントロールで編集可能です。
- フォームの上部にあるツールストリップの[アイテムを削除]ボタンを押します。アイテムがハッシュテーブルから削除され、リストビューコントロールが更新されて削除が反映されます。テキストボックスは、タブコントロール全体で空白に設定されています。
これは私にはかなり普通で妥当な動作のようです。私は、SelectedIndexChangedイベントを使用すると、データ作業を行う機会を提供するだろうと推測しました。しかし、イベントはすべての選択/選択解除で2回発生し、どの項目をリストビューで更新する必要があるかは必ずしも明確ではありません。
どのような「選択/選択解除」が行われたかをテストし、どのようなアクションを取るべきかを決定するコードはかなり長くなり始めています。
ので:
- は、私は私の機能の目標を達成するために使用できる別のイベントはありますか?または
- SelectedIndexChangedイベントについて、プログラムが特定の時点で何をすべきかを決定するのに役立つかどうかわかりませんか?または
- 私はこれについて間違った方法をとっていますか?
私のフォームを再設計することについてのご意見、ご提案は大歓迎です。
EDIT:この問題を別の角度から攻撃しようとしている間、私はマスターハッシュテーブルをソートリストに変更しています。残りの問題は同じままです。
Listview1.MultiSelectがfalseであることを確認してください:私は次のことを示唆している「非常に長い取得し始め」のコードを知らなくても
は、このWPFまたはWinformsですか? – Gishu