0

Я пытаюсь получить значение из окна выбора и сравнить его со строкой. Таким образом, значение другого combobox следует изменить.SelectedValue 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"/> 
</ComboBox> 

<!--Combo 2 --> 

<ComboBox x:Name="Combo2" Header="Combo2" > 
    <ComboBoxItem Content="Value 3" IsSelected="True"/> 
    <ComboBoxItem Content="Value 4"/> 
</ComboBox> 

И функция SelectionChanged

private void Combo1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (((ComboBoxItem)Combo1.SelectedItem).Content.ToString() == "Value 2") 
    { 
     Combo2.Items.Add("Value 5"); 
    } 
} 

Я попробовал некоторые предыдущие варианты, включая приведенный выше пример, но показал NullReferenceException

+0

Не могли бы вы указать в коде, где 'NullReferenceException' приходят из (возможно, с верхней части StackTrace)? Благодарю. –

+0

Romasz решение его работы. Спасибо за помощь. И исключение NullReferenceException происходит из ((ComboBoxItem) Combo1.SelectedItem) .Content.ToString() – GustavoZafra

ответ

1

Я думаю, вы получаете исключение только тогда, когда ваше начали приложение - во время InitializeComponent() вашей страницы - если вы его отлаживаете, вы увидите, что до завершения инициализации элемент с именем Combo1: null, поэтому вы получите исключение, позвонив по телефону Combo1.SelectedItem.

Попробуйте так:

private void Combo1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    var comboBox = (sender as ComboBox); 
    if ((comboBox.SelectedItem as ComboBoxItem).Content.ToString() == "Value 2") 
    { 
     Combo2.Items.Add("Value 5"); 
    } 
} 
+0

Большое вам спасибо Romasz. Это работает. – GustavoZafra

+1

@vtncgustavo В этом случае вы могли бы принять его? Это предложенный способ оповестить, что эта проблема решена. Благодарю. –

Смежные вопросы