Событие WPF Tab_SelectionChanged - PullRequest
       0

Событие WPF Tab_SelectionChanged

0 голосов
/ 08 сентября 2011

Я хочу заблокировать свою вкладку wpf, чтобы изменить индекс, но я получаю сообщения об ошибках диспетчера с моим кодом ниже.Где я делаю не так?Я знаю, что когда содержимое меняется, оно запускает то же событие, но есть ли другое событие для этого?

    private void MainTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (!(e.Source is TabControl))
            return;
        if (Helper.GetProperty<bool>("IsTabLocked")) // my condition
        {
            MessageBox.Show("tab is locked");
            e.Handled = true;
            return;
        }

Ответы [ 2 ]

0 голосов
/ 09 сентября 2011

Я мог бы придумать собственное решение с исходным кодом ниже, но я уверен, что кто-то думал об этом, и есть событие или более простой трюк, которого я никогда раньше не слышал.

    static int TabControlIndex = 0;
    private void MainTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (!(e.Source is TabControl))
            return;
        if (TabControlIndex == MainTabControl.SelectedIndex)
            return;
        if (Helper.GetProperty<bool>("IsTabLocked") && TabControlIndex != MainTabControl.SelectedIndex)
        {
            MessageBox.Show("locked");
            MainTabControl.SelectedIndex = TabControlIndex;
            // = true;
            return;
        }
0 голосов
/ 08 сентября 2011

Самое простое решение, которое я вижу, это установка требуемой вкладки в качестве выбранной, когда выполнение приходит к событию SelectionChanged.

Попробуйте что-то вроде ниже.

int MyPreferedTabPageIndex = 1; // ?

private void MainTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (Helper.GetProperty<bool>("IsTabLocked")) // my condition
        {
            MainTabControl.SelectedIndex = MyPreferedTabPageIndex ;
            MessageBox.Show("tab is locked");

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...