【问题标题】:Block opening of TabItem in Wpf阻止在 Wpf 中打开 TabItem
【发布时间】:2021-03-09 16:06:09
【问题描述】:

我在 WPF 项目中有一些 TabItem 控件,当某个事件发生时,我需要阻止它们打开。基本上,我在进程发生时将布尔变量设置为 true,在结束时设置为 false,只要属性为 true,就无法打开其他 TabItem。我的问题是为什么我没有找到控制 TabItem 打开的方法。谁能帮我解决这个问题?

【问题讨论】:

    标签: c# wpf visual-studio wpf-controls tabitem


    【解决方案1】:

    您可以创建自定义 TabControl 并覆盖 OnSelectionChanged 方法:

    public class CustomTabControl :TabControl
    {
        private bool _handle = true;
    
        public bool IsSelectable { get; set; } = true;
    
        protected override void OnSelectionChanged(SelectionChangedEventArgs e)
        {
            if(IsSelectable)
            {
                base.OnSelectionChanged(e);
            }
            else if (_handle && e.RemovedItems.Count > 0)
            {
                _handle = false;
                SelectedItem = e.RemovedItems[0];
                _handle = true;
            }
        }
    }
    

    将IsSelectable设置为false以防止标签被选中:

    <local:CustomTabControl IsSelectable="False">
        <TabItem Header="1">
            <TextBox Text="..." />
        </TabItem>
        <TabItem Header="2" >
            <TextBox Text="..." />
        </TabItem>
        <TabItem Header="3">
            <TextBox Text="..." />
        </TabItem>
    </local:CustomTabControl>
    

    【讨论】:

      【解决方案2】:

      使用绑定到 SelectedItem 属性。当它改变调用方法的时间时。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-18
        • 1970-01-01
        • 2014-06-07
        • 1970-01-01
        相关资源
        最近更新 更多