2011-07-26 11 views
2

콤보 상자 항목을 삭제하는 방법은 무엇입니까? 이 코드를 시도했지만 작동하지 않습니다. 대신 ComboBoxItem을 제거콤보 상자 WPF에서 콤보 상자 항목 제거

private void btnAdd_Click(object sender, RoutedEventArgs e) 
    { 
foreach (var item in cbRooms.Items) 
       { 
        if (((ComboBoxItem)item).Content.ToString() == cbRooms.Text.ToString()) 
        { 
         cbRooms.Items.Remove(((ComboBoxItem)item).Content.ToString()); 
        } 
       }} 
+0

을 'Remove' 줄에 중단 점을 추가하고 실제로 호출되었는지 확인 했습니까? 즉,'if' 조건이 실제로 true로 평가되는지 확인하십시오. – Heinzi

+0

예 해당 값이 true로 평가됩니다. –

+2

ComboBox를 일부 컬렉션에만 바인딩하고 컬렉션 자체에서 항목을 제거하지 않는 이유는 무엇입니까? –

답변

4

대신 문자열 시도 제거하기 위해 노력 :

cbRooms.Items.Remove((ComboBoxItem)item)) 
1

시도 :

(ComboBoxItem)item).Content.ToString() 

시도 :

cbRooms.Items.Refresh(); 
: 당신은 또한 당신이 항목을 제거한 후 콤보 상자 컨트롤을 새로 고쳐야 할 수 있습니다

(item) 

업데이트

당신은 kzen이 OP의 의견에서 말한 것을 시도 할 수 있습니다. 항목을 저장하려면 List<ComboBoxItem>을 사용하고 List에 추가/제거 작업을 수행하십시오. 그런 다음 ComboBox에 목록을 바인딩 :

cbRooms.ItemsSource = comboBoxItemList; 

을 그런 다음 List 통화에서 새로 고침을하여 작업을 수행 할 때

cbRooms.Items.Refresh(); 
+0

kzen이 말한 것을 시도해보고 ItemsSource 속성을 사용하여 콤보 상자를 ComboBoxItems 목록에 바인딩 할 수 있습니다. 목록을 변경 한 후 cbRoom.Items.Refresh()를 호출하십시오. 이를 전달하기위한 답을 업데이트합니다. –