WPF에서는 Radiobutton처럼 보이는 콤보 박스 컨트롤을 가질 수 있습니까?

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

문제

Combobox 유형에 의존하는 모든 코드가 있으며 새로운 UI에서 사용할 수 있기를 원하지만 유용한 이유로 Radiobutton처럼 보일 필요가 있습니다. Combobox 컨트롤이 라디오 부트 톤 세트처럼 보일 수 있습니까?

도움이 되었습니까?

해결책

내 제안은 radiobuttons를 렌더링하는 데이터 emplate과 함께 Itemscontrol을 사용하는 것입니다. Itemscontrol에 Combobox에 바인딩하는 것과 동일한 것을 바인딩합니다. 한 가지 경고는 라디오 버튼의 그룹 이름을 그룹과 동일한 것으로 설정해야하므로 상호 배타적 일 수 있다는 것입니다. 그렇지 않으면 아무것도하지 않으면 두 개 이상의 Radiobutton을 동시에 선택할 수 있습니다.

다른 팁

Combobox 클래스와 동일한 방법을 가지고있는 새로운 USERControl을 구축 할 수 있지만 대신 여러 라디오 상자를 생성하도록 조정할 수 있습니다.

그래도 당신의 질문은 모호합니다.

즉, 사용자 컨트롤에서 항목 컬렉션을 만들고 무언가가 추가되면 콤보 상자가 수행하는 대신 라디오 상자를 그리고 제어를 크기를 조정하고 목록에 문자열을 추가합니다.

그런 다음 모든 참조를 Combobox에 대한 모든 참조를 FraidifiedCombobox로 찾고 교체하기 만하면됩니다.

그녀는 약간의 비교 :

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

또는

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

그리고

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