0

콤보 상자에 문제가 있습니다. 두 개의 콤보 박스가 다른 요소에 의해 선택된 요소에 조건부로 있습니다.조건 combobox에서 Universal Apps Windows Phone

<!-- Combo 1 --> 

<ComboBox x:Name="Combo1" Header="Combo1" SelectionChanged="Combo1_SelectionChanged"> 
    <ComboBoxItem Content="Value 1" IsSelected="True"/> 
    <ComboBoxItem Content="Value 2"/> 
    <ComboBoxItem Content="Value 3"/> 
</ComboBox> 

<!--Combo 2 --> 

<ComboBox x:Name="Combo2" Header="Combo2" > 
    <ComboBoxItem Content="Value 4" IsSelected="True"/> 
    <ComboBoxItem Content="Value 5"/> 
    <ComboBoxItem Content="Value 6" x:Name="ComboItemValue6" Visibility="Collapsed"/> 
</ComboBox> 

값 2 내가 VALUE3을 선택하면 값 1은 장기가 가야를 선택하면 다음 Combo2이 붕괴 될한다, 축소되어 보이는 Value6을해야 다음을 선택하면 문제는, 시작 나는이 시도 인 selectionchanged 이벤트

private void Combo1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    var comboBox = (sender as ComboBox); 
    if ((comboBox.SelectedItem as ComboBoxItem).Content.ToString() == "Value2") 
    { 
     ComboItemValue6.Visibility = Visibility.Visible; 
    } 
    if ((comboBox.SelectedItem as ComboBoxItem).Content.ToString() == "Value3") 
    { 
     Combo2.Visibility = Visibility.Collapsed; 
    } 
    else 
    { 
      Combo2.Visibility = Visibility.Visible; 
      ComboItemValue6.Visibility = Visibility.Collapsed; 
    } 
} 

을 통해 그것을 만들기 위해 시도했지만 작동하지 않았다합니다 (Combo2는 6 값이없이,이 시간을 다시해야한다).

+0

어떻게 작동하지 않았습니까? 뭐가 문제 야? – yasen

+0

안녕하세요, NullReferenceExcepction 오류를 가리 킵니다 – GustavoZafra

+0

언제 오류가 발생합니까? 컨트롤이 생성되면? ComboBox 선택을 변경하면? 또한이 예외는 핸들러에서 사용중인 오브젝트 중 하나가 널임을 의미합니다. 어떤거야? – yasen

답변

0

가시성 변환기를 사용해 보셨습니까? 백엔드 로그인에서 바인드 할 때 this와 같은 변수이지만 반대 params를 사용하여 value2와 value6을 바인드하는 것처럼 사용하므로 value2가 표시되면 value6 및 viceversa가 축소됩니다.

public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     Visibility visibilty = Visibility.Visible; 
     string paramType = parameter as string; 
     bool isVisible = (bool)value; 

     if (paramType == "direct") 
     { 
      visibilty = (isVisible == false) ? Visibility.Collapsed : Visibility.Visible; 
     } 
     else if (paramType == "invert") 
     { 
      visibilty = isVisible ? Visibility.Collapsed : Visibility.Visible; 
     } 

     return visibilty; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, string language) 
    { 
     return null; 
    } 

    #endregion 
} 
+0

Hello @aniketpatil이 나의 무지를 용서했다는 것은 위의 SelectionChanged 이벤트에서 가시성 변환기를 적용하는 방법을 이해할 수 없다는 것입니다. 이해할 손을 내줄 수 있니? – GustavoZafra

+0

ComboBoxItem의 가시성을 bool에 바인딩해야합니다. 귀하의 요구 사항에 따라 bool의 값을 변경하십시오. GenericVisibility converter 샘플을 검색하십시오. 코드를 공유 할 수 없다면 알려주십시오. – aniketpatil

관련 문제