0

変数を使用したカスタムユーザーコントロールと、bool Selectedそれが選択されているかどうかを確認するコードがあります。選択されている場合は強調表示され、選択されていない場合は強調表示が非表示になります。十分に単純です。

これで、そのオブジェクトで埋められたパネルができました。他のファイルエクスプローラー(Windowsエクスプローラーなど)と同じように機能する必要があります。つまり、アイテムをクリックすると、それ自体が選択されます。それは問題ではありません、それはただマウスクリックです。問題は、ユーザーが代わりに他のアイテムを選択したいときに発生します。

私が基本的に欲しいのは:

ユーザーがアイテムをクリックするたびに、他のすべてのアイテムの選択が解除されます。

私はそれを行うための最良の方法を見つけようとしていました。頭に浮かんだのは、それらの操作を指示する(ブール値を変更し、更新関数を呼び出す)親クラスを持っていることだけですが、それはあまりにもずさんで、おそらく少し複雑に見えます。助言がありますか?

ありがとう。

4

2 に答える 2

1

最も一般的なアプローチは、「コレクション」コンポーネントです。これは、選択できる数などのルールを管理し、有用な情報とイベント (SelectedItem や SelectedItemChanged など) を公開します。

于 2012-04-30T05:58:43.487 に答える
0

私は最初のアイデアが私が見つけることができる最高のものであることがわかりました(そうでない場合は、「車輪を再発明する」ため、この場合は怠惰な答えが最適でした)。これらのユーザー コントロールのリストを持つクラスを作成し、そのリストのプロパティをユーザー コントロールに与えました。

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

予想通り少しずさんに見えましたが、もし私が本当に心を込めていれば、他の誰かが不思議に思ってこの情報を必要とする場合に備えて、わかりやすく整理できると確信しています.

于 2012-04-30T18:31:22.333 に答える