Есть ли Выбранная Вкладка Измененное Событие в стандартном Управлении Вкладкой WPF

@abu, ваш вопрос поднимает явный пробел в документации - что делать с фиктивными переменными, нарушающими пропорциональный тест. В этом случае я предлагаю не дублировать переменную и добавить исходный столбец в качестве стратифицированной переменной, например: fit(..., strata=['dummy'])

90
задан skeletank 5 February 2013 в 19:38
поделиться

5 ответов

Я связал это в обработчике, чтобы оно заработало:

void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (e.Source is TabControl)
    {
      //do work when tab is changed
    }
}
116
ответ дан 24 November 2019 в 06:56
поделиться

Это правильное событие. Может быть, он неправильно подключен?

<TabControl SelectionChanged="TabControl_SelectionChanged">
    <TabItem Header="One"/>
    <TabItem Header="2"/>
    <TabItem Header="Three"/>
</TabControl>

в коде позади ...

private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    int i = 34;
}

, если я устанавливаю точку останова в строке i = 34, она ломается ТОЛЬКО при смене вкладок, даже когда вкладки имеют дочерние элементы и один из их выбран.

2
ответ дан 24 November 2019 в 06:56
поделиться

Вы все еще можете использовать это событие. Просто убедитесь, что аргумент отправителя является тем элементом управления, который вас действительно интересует, и, если это так, запустите код события.

14
ответ дан 24 November 2019 в 06:56
поделиться

Сгенерированное событие поднимается вверх до тех пор, пока оно не будет обработано.

Эта часть xaml ниже запускает ui_Tab_Changed после ui_A_Changed , когда элемент выбран в ListView изменяется независимо от изменения TabItem в TabControl .

<TabControl SelectionChanged="ui_Tab_Changed">
  <TabItem>
    <ListView SelectionChanged="ui_A_Changed" />
  </TabItem>
  <TabItem>
    <ListView SelectionChanged="ui_B_Changed" />
  </TabItem>
</TabControl>

Нам нужно обработать событие в ui_A_Changed ] ui_B_Changed и так далее):

private void ui_A_Changed(object sender, SelectionChangedEventArgs e) {
  // do what you need to do
  ...
  // then consume the event
  e.Handled = true;
}
4
ответ дан 24 November 2019 в 06:56
поделиться

Если вы установите свойство x: Name для каждого TabItem как:

<TabControl x:Name="MyTab" SelectionChanged="TabControl_SelectionChanged">
    <TabItem x:Name="MyTabItem1" Header="One"/>
    <TabItem x:Name="MyTabItem2" Header="2"/>
    <TabItem x:Name="MyTabItem3" Header="Three"/>
</TabControl>

, тогда вы сможете получить доступ к каждому TabItem ] на мероприятии:

private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (MyTabItem1.IsSelected)
    // do your stuff
    if (MyTabItem2.IsSelected)
    // do your stuff
    if (MyTabItem3.IsSelected)
    // do your stuff
}
73
ответ дан 24 November 2019 в 06:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: