2012-04-30 4 views
0

私はbool Selected変数を持つカスタムユーザーコントロールを持っています。選択されているかどうかを確認するコードがあります。選択されている場合はハイライト表示され、選択されていない場合はハイライト表示されません。十分に単純です。オブジェクト通信

今、私はそのオブジェクトでいっぱいのパネルを持っているので、Windowsエクスプローラなどのファイルエクスプローラと同じように動作する必要があります。つまり、アイテムをクリックすると、アイテムが選択されます。それは問題ではなく、単なるマウスクリックです。ユーザーがの代わりにを選択したいときに問題が発生します。私は基本的に欲しい

は次のとおりです。

ユーザーがアイテム、他のすべての項目の選択解除や、クリックするたびに。

私はそれをする最善の方法を見つけようとしていましたが、私の心には親クラスがあります(boolを変更して更新関数を呼び出す)が、少し複雑です。助言がありますか?

ありがとうございました。

+0

完全に読み込まれませんでした。申し訳ありません。あなたは何を正確に選んでいますか?ファイル、写真? – moowiz2020

+0

どのプラットフォームですか? winform、wpf ??? –

+0

基本的に、WPFアイテムコントロールに単一選択を実装する方法を尋ねていますか? – Tormod

答えて

1

最も一般的なアプローチは、選択可能な数などのルールを管理し、有益な情報やイベント(SelectedItemやSelectedItemChangedなど)を公開する「収集」コンポーネントです。

+0

これを「手動で」達成する方法を提案できますか? (私はこれをちょっと微調整しようと思っています) – MasterMastic

+0

新しいコレクションコンポーネントを作成すると、これを他の場所で再利用できます。しかし、この管理コードを直接あなたのフォームに入れておくことが、迅速かつ厄介な解決策になります。ただし専用のコレクションコンポーネントを作成することを強くお勧めします。 – overslacked

+0

私は私の答えで何をしたのか説明しましたが、あなたはそれに非常にうまく答えてくれたので、まだ最高の答えを得なければならないと思います。 – MasterMastic

0

私は最初のアイデアを見つけられました(「ホイールを再発明する」として、そうでなければ、過度の回答はこのケースでは偉大でした)。 これらのユーザーコントロールのリストを持つクラスを作成し、ユーザーコントロールにそのリストのプロパティを与えました。

私はユーザーコントロールを選択したいとき、そのクラスの中にあるすべてのコントロールの選択を解除し、クリックしたものを選択するクラス内の関数をクリックイベントで持っていました。

私は期待どおり少しうんざりしていましたが、私が実際にそれに私の心を与えていれば、誰もがこの情報を不思議に思って必要としているかのように、

関連する問題