から継承する を使用するプロジェクトをRadioButtonList
継承しましたListBox
。これは Web から削除され (現在はリンクが見つかりません)、RadioButtonList.cs (6 つの依存関係プロパティを含む) と RadioButtonList.xaml (スタイルとコントロール テンプレートのみ) が含まれています。
このコントロールは、100 以上の場所で使用されています。完全で専門的なコントロールではないため、問題が発生します。フォーカスの問題、キーボード ナビゲーションなどの問題。(コメントを参照してください。)
過去数年間にさまざまな時期に多くの調査を行った結果、この制御は実際には必要ないように思われます。GroupName
ラジオボタンのグループにプロパティを設定するだけです。また、コントロールが使用される唯一の理由RadioButtonList
は、継承されListBox
た .
1) この管理は本当に必要か? より良い方法はありますか?
2) 頭痛の種なしにデータバインディングの利点を得ることができる、オープンソースまたはその他の専門的なコントロールはありますか? (私たちは Infragistics と DevExpress を使用していますが、これらのスイートが提供するすべてのコントロールに精通しているわけではありません。)
私の答え
1a) この管理は本当に必要ですか?
- ラジオ ボタンのリストが 1 つだけ必要な場合は、このコントロールは必要ありません。
- アプリケーションが多数のラジオ ボタンのリストを使用する場合、はい、このコントロールが必要です。
- さまざまなアプリケーションでラジオ ボタンのリストを使用する場合は、おそらくこのコントロールが必要です。
1b) もっと良い方法はありますか?
ListBox
、 、またはその他から派生させて、ItemsControl
スタイルとテンプレートを作成することが、このコントロールを作成する唯一の方法です。したがって、良い方法はありません。
2)プロのコントロールはありますか...
- 間違いなく、
ListBoxEdit
とRadioListBoxEditStyleSettings
.
回答に関するコメント
すべての回答は、RadioButtonList
コントロールを作成する必要がないことを示しています。それでも、ラジオ ボタンのリストが 2 つ以上必要な場合は、スタイルとコントロールのテンプレート、および場合によってはデータ テンプレートを作成するまでに、radio-button-list- と呼ばれるコード アーティファクトのコレクションができあがります。コントロール。したがって、私の意見では、 aRadioButtonList
が必要です。
さらに、私の理解ではRadioButtonList
、初期の WPF CTP で削除されました。簡単に作成できるようなコントロールの必要性が限られているため、これは理解できます。
受け入れられた回答に関するコメント
2)プロのコントロールはありますか...
- 間違いなく、
ListBoxEdit
とRadioListBoxEditStyleSettings
.
最後に、Mike Strobel's Answer にコメントしてください
私が持っているのRadioButtonList
は、彼の答えの最終結果です。私はカスタム コントロールの作成が得意ですが、Infragistics や DevExpress などのサードパーティ コンポーネント メーカーに、このような基本的なコントロールの作成とサポートを任せています。