Я пытаюсь изменить выбранную вкладку моего TabControl, используя следующий код:
// Switch to configuration tab
tabControl.SelectedItem = configTab;
Хотя он работает очень хорошо из обработчика ButtonClick, он ничего не делает из обработчика DataGrid DoubleClick в том же TabItem. Я установил отладчик на эту строку и вижу изменение свойства SelectedItem, но вкладка отказывается изменить.
РЕДАКТИРОВАТЬ: Подробнее код
Элемент управления вкладки определяется так:
<Grid>
<TabControl Height="Auto" HorizontalAlignment="Stretch" Name="tabControl" VerticalAlignment="Stretch" Width="Auto" Padding="0" SelectionChanged="BuildSummary">
<TabItem Header="Configurations" Name="configTab">
...
</TabItem>
<TabItem Header="Temperature" Name="tempTab">
...
</TabItem>
<TabItem Header="Test List" Name="testTab">
...
</TabItem>
<TabItem Header="Summary" Name="summaryTab">
...
</TabItem>
</TabControl>
</Grid>
Это рабочее событие:
private void Execute(object sender, RoutedEventArgs e)
{
// Switch to configuration tab
tabControl.SelectedItem = configTab;
}
Это прерванное событие:
private void DoubleClick(object sender, MouseButtonEventArgs e)
{
DataGridRow row = ItemsControl.ContainerFromElement(
(DataGrid)sender, e.OriginalSource as DependencyObject)
as DataGridRow;
if (row == null)
return;
/* code here prepares the configuration tab */
...
// Switch to configuration tab
tabControl.SelectedItem = configTab;
}
Что мне не хватает?