WPFでは、RadioButtonのように見えるコンボボックスコントロールを持つことは可能ですか?

StackOverflow https://stackoverflow.com/questions/1615440

質問

ComboBoxタイプに依存するコードの束があり、新しいUIで使用できるようにしたいのですが、使用するUIは、使いやすさのためにRadioButtonのように見える必要があります理由。 ComboBoxコントロールをRadioButtonのセットのように見せることは可能ですか?

役に立ちましたか?

解決

RadioButtonsをレンダリングするDataTemplateでItemsControlを使用することをお勧めします。 ItemsControlには、ComboBoxにバインドしているものと同じものをバインドします。 1つの注意点は、ラジオボタンのGroupNameをグループと同じものに設定する必要があるため、相互に排他的になる可能性があることです。それ以外の場合、何もしなければ、複数のRadioButtonを同時に選択できます。

他のヒント

ComboBoxクラスと同じ多くのメソッドを持つ新しいUserControlを作成できますが、代わりに複数のラジオボックスを作成するように調整できます。

あなたの質問はちょっとあいまいです。

IEは、ユーザーコントロールにItemsコレクションを作成します。何かが追加されたら、コンボボックスの代わりにラジオボックスを描画してコントロールのサイズを変更し、リストに文字列を追加します。

その後、ComboBoxへのすべての参照を見つけてRadioIFiedComboBoxに置き換えるだけです。

いくつかの比較:

ComboBox cb = new ComboBox();
cb.Items.Add("blah");

または

RadioIFiedComboBox cb = new RadioIFiedComboBox();
cb.Items.Add("blah");

and

public class RadioIFiedComboBox : UserControl {
  public ObservableCollection<object> Items = new ObservableCollection<object>();
  public RadioIFiedComboBox() {
    Items.CollectionChanged += new NotifyCollectionChangedEventHandler(YourCollectionChanged);
  }
  private void YourCollectionChanged(){
    //do something here to redraw your controls
  }
}

上記のコードは単なる例です。ComboBoxクラスで使用するすべてのメソッドを作成し、同様の機能を作成する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top