绑定到 MultiDataTrigger

问题描述

我创建了一个从 TabItem 继承的派生控件。当 TabItem 处于溢出状态时,我希望根据一些条件更改 TabItem 的外观。但是,我无法创建一个绑定到 ToolBar.IsOverflowItem 的 multidatatrigger 条件 - 这是一个附加属性

在 ControlTemplate.Triggers 中,我想做的是:

   <ControlTemplate.Triggers>

      <multidatatrigger>

         <multidatatrigger.Conditions>

            <Condition Binding="{Binding TabStripPlacement,RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Top"/> 

            <Condition Binding="{Binding ToolBar.IsOverflowItem,RelativeSource={RelativeSource Self}}" Value="True"/> 

         </multidatatrigger.Conditions>

         <Setter Property="BorderBrush" Value="Red"/>
         <Setter Property="BorderThickness" Value="1"/>

      </multidatatrigger>

   </ControlTemplate.Triggers>


我认为语法是正确的,但它没有触发。为了解决它,我用这样的触发器替换了 multidatatrigger

   <Trigger Property="ToolBar.IsOverflowItem" Value="True">
       <Setter Property="BorderBrush" Value="Red"/>
       <Setter Property="BorderThickness" Value="1"/>
   </Trigger>

该触发器可以正常工作,并且也可以用作 MultiTrigger 中的条件。所以 - 为了进一步解决绑定语法的问题,我尝试了以下方法,它应该与上面的触发器具有相同的效果

<multidatatrigger>

   <multidatatrigger.Conditions>
     
      <Condition Binding="{Binding ToolBar.IsOverflowItem,RelativeSource={RelativeSource Self}}" Value="True"/>

   </multidatatrigger.Conditions>

      <Setter Property="BorderBrush" Value="Red"/> 
      <Setter Property="BorderThickness" Value="1"/>

</multidatatrigger>

同样没用。我已经尝试了多种其他方式在 multidatatrigger 环境(包括不同的 RelativeSources)中设置条件,但根本无法触发它。它仅在我将其设置在 Trigger 上下文或 MultiTrigger 上下文中时触发。

任何人都可以帮忙.......在 multidatatrigger 中绑定到 ToolBar.IsOverflowItem 的正确语法是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)