2013-10-14 4 views
4

WPF에서 콤보 박스를 지우려면 어떻게해야합니까?WPF에서 콤보 박스 지우기

private void btClear1_Click(object sender, RoutedEventArgs e) 
    { 

     txtID.Text = String.Empty; 
     this.cbType.SelectedItem = -1; 
    } 
+3

cbType.Items.Clear? – Fred

+2

모든 항목을 제거하는 방법으로 선택을 지우거나 선택을 지우는 방법으로 선택을 취소 하시겠습니까? –

+0

선택 지우기 – user2631662

답변

2

을 취소 할 수있는 선택을 취소 :이 코드를 시도했다 SelectedItem 또는 SelectedValue도 있지만, -1이 아닌 null으로 변경하십시오 (정수가 아닌 개체를 가리킴).

cboType.SelectedItem = null; 
+0

내가 이것을 시도하면 얻을 수 있습니다 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. cbType_SelectionChanged - – user2631662

+1

@ user2631662 'SelectionChanged' 이벤트를 변경하여 콤보 상자에서 선택한 항목으로 작업하기 전에 null을 확인하십시오. –

+0

어떻게하면 되나요? – user2631662

4

cbTypion.SelectedItem = -1cbType.Items.Clear()SelectedIndexSelectedItem

cboType.SelectedIndex = -1; 

당신은을 설정할 수없는 선택 세트를 지우려면 모든 항목

+0

표준 WPF 콤보 상자에는 ClearSelection()이라는 항목이 없습니다. ASP 같은 것이 있을까요? –

+0

@KevinDiTraglia 나는 정정! 그 이후로 나는 WPF를 개발했다. 예, ASP.NET에서 사용할 수 있습니다. 답변이 업데이트되었습니다. – Fred

+0

'ComboBox'가 XAML 또는 동적으로'ComboBoxItem'을 추가하는 것만으로 채워지는지 아니면 'ItemsSource'에 바인딩하여 채워 졌는지에 따라 달라집니다. 후자를 사용하면'cbType.Items.Clear()'를 할 수 없습니다. - ItemSource가 사용되는 동안 작동이 유효하지 않습니다. ItemsControl.ItemsSource를 사용하여 요소에 액세스하고 수정하십시오 .' – vapcguy

3

XAML 페이지에서 바인딩하여 콤보 상자를 다시 설정할 수 있습니다. 예를 들어

의 XAML 페이지에서 해당 콤보 필드 : ViewModelPage에서 다음

text={Binding viewmodelobject Name.property Name} 

그리고 :

viewmodelobject Name.property Name=""; 
1

완전히 삭제 상자 항목 Google 직원
, 타이틀이기 때문에 오해의 소지가 있습니다. 상자에서 항목을 지우는 경우, cbType.Items.Clear()을 사용하는 몇 가지 답변을 보았습니다. 항목이 어떻게로드되었는지에 따라 다릅니다. XAML에 하드 코딩하여 런타임에 함수를 동적으로 추가하고 데이터 바인딩 유형을 사용하거나 .ItemSource에로드 할 수있었습니다. 후자의 경우를 제외하고는 모두 작동합니다.

당신은 예를 들어, 당신은 단순히 cbType.Items.Clear()을 할 수 없어, DataTable을의 DefaultView를 통해 ComboBox를로드 할 .ItemSource를 사용하는 경우. 드롭 다운을 채우는 방법을 질문에 포함되지 않았기 때문에, 나는 당신이 .ItemSource을 설정하는 경우를 위해, 당신이해야 제출 :

cbType.ItemsSource = null;

대신. 당신이 cbType.Items.Clear()을 시도하는 경우 그렇지 않으면, 당신은 얻을 것이다 :

Operation is not valid while ItemSource is in use. Access and modify 
elements with ItemsControl.ItemsSource instead 


가 선택한 항목
내가 다시 가서 영업 이익의 코멘트를보고 지우기 소원은 선택이 아닌 선택을 취소했다라고. 그 대답은 다음과 같습니다.

cbType.SelectedIndex = -1; 
cbType.Text = ""; // I've found the first line does this for me, as far as appearances, but found other postings saying it's necessary - maybe they were using the property and it wasn't getting cleared, otherwise