我有一个Button
我需要检测它是否进入 ToolBarOverflowPanel。
当前代码:
(逻辑:监控Children.Count
AncestorType ToolBarPanel
,发送到转换器,如果 value( ToolBarPanel.Children.Count
) = FallbackValue
thenToolBarPanel
可能没有注册为 Ancestor,因为Button
现在ToolBarOverflowPanel
改为)
public class IsInOverflowPanel : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value?.ToString().Equals("-1");
}
/*ConvertBack(...) not included here*/
}
和 XAML:
<ControlTemplate.Resources>
<local:IsInOverflowPanel x:Key="MyOverflowDetector"/>
</ControlTemplate.Resources>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Children.Count, Converter={StaticResource MyOverflowDetector}, RelativeSource={RelativeSource AncestorType=ToolBarPanel}, FallbackValue=-1}" Value="True">
<!--Do Stuff Here-->
</DataTrigger>
</ControlTemplate.Triggers>
这段代码的问题是当按钮进入ToolBarOverflowPanel
.
但它一开始是有效的。我的结论是Children.Count
没有提供更新通知。有没有办法解决它?
如何强制转换器更新?我需要什么样的绑定才能实现?