Сегодня обнаружил вот такую штуку. Имеется окно:
<TabControl Name="tcMain" SelectionChanged="tcMain_SelectionChanged">
<TabItem Header="0"></TabItem>
<TabItem Header="1">
<ComboBox Name="cbValues" Width="100" Height="25"></ComboBox>
</TabItem>
</TabControl>
И обработчик SelectionChanged
private void tcMain_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (tcMain.SelectedIndex)
{
case 1:
cbValues.ItemsSource = null;
cbValues.ItemsSource = new[] { "1", "2" };
break;
default: break;
}
}
При попытке выбрать значение из ComboBox, файрится события SelectionChanged у TabControl. Я в замешательстве
да, так и есть. для этого в дочернем обработчике нужно дописать e.Handled = true; - тогда событие не будет всплывать или тунеллироваться дальше. Вообще после WinForms нужно привыкнуть к такой идеологии :)