Найти активную/открытую вкладку в WPF

Итак, моя ситуация такова, что у меня есть TabControl с двумя вкладками внутри сетки. Кнопка также находится в сетке, поэтому она отображается на обеих вкладках. Когда эта кнопка нажата, я хотел бы, чтобы она могла открывать Tab1, делать X, а когда Tab2 открыта, делать Y. Я знаю, что могу просто создать кнопку на каждой вкладке и все будет в порядке, но мне было интересно, если был способ этого не делать.

Пример:

  <Grid>
  <TabControl x:Name="sampTabControl">
            <TabItem x:Name="Tab1" Header="This Is Tab1"/>
            <TabItem x:Name="Tab2" Header="This Is Tab2"/>
  </TabControl>
  <Button Width="50" Height="50" Name="sampBtn" Click="doSomething_Click/>
  </Grid>


  private void doSomething_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        if(Tab1.IsOpen //IsOpen is something I made up, does not actually work
           {
                 //Perform X Code
           }
        else if(Tab2.IsOpen) //IsOpen is something I made up, does not actually work
           {
                 //Perform Y Code
           }
    }

person K. Fenster    schedule 08.06.2016    source источник


Ответы (1)


Как насчет использования свойства sampTabControl.SelectedIndex?

person kenny    schedule 08.06.2016
comment
Дополнительное примечание: для таких глупых, как я, в моем примере Tab1 имеет SelectedIndex, равный 0, а Tab2 имеет SelectedIndex, равный 1. - person K. Fenster; 08.06.2016