代码之家  ›  专栏  ›  技术社区  ›  Shimmy Weitzhandler 500 - Internal Server Error

有没有方法取消tabcontrol.items.currentChanging?

  •  5
  • Shimmy Weitzhandler 500 - Internal Server Error  · 技术社区  · 15 年前

    不幸的是,没有tabControl.SelectionChanging事件(selector.SelectionChanging),我正在努力实现此行为,以便取消更改请求。

    我试着处理 TabControl.Items.CurrentChanging (the Items 属性是 ItemCollection )事件设置e.取消 CurrentChangingEventArgs )为true,但用户界面将使用新选项卡进行更新,尽管集合中的项没有更改。

    有没有办法阻止用户切换到其他 TabItem 当一个条件不满意时?

    2 回复  |  直到 15 年前
        1
  •  5
  •   Shimmy Weitzhandler 500 - Internal Server Error    15 年前

    void Items_CurrentChanging(object sender, CurrentChangingEventArgs e)
    {
        if (checkBox1.IsChecked.Value)
        {
            var item = ((ICollectionView)sender).CurrentItem;
    
            e.Cancel = true;
    
            tabControl1.SelectedItem = item;
        }
    }
    

        2
  •  0
  •   Frédéric Hamidi    15 年前

    PreviewLostKeyboardFocus TabItem Handled true

    protected void tabItem_PreviewLostKeyboardFocus(object sender,
        KeyboardFocusChangedEventArgs e)
    {
        if (!ValidateTabItem((TabItem) sender)) {
            e.Handled = true;
        }
    }
    

    http://www.netframeworkdev.com/windows-presentation-foundation-wpf/how-to-cancel-navigation-between-tabitems-in-a-tabcontrol-84994.shtml