<Style x:Key="FavouriteMenuItemStyle" TargetType="{x:Type MenuItem}" BasedOn="{StaticResource BasicFavouriteItemStyle}">
<Setter Property="Width" Value="Auto"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type MenuItem}">
<Grid>
<ToggleButton x:Name="Bd"
Content="{Binding Header}"
Style="{StaticResource FolderButtonStyle}"
Height="{TemplateBinding Height}"
Width="{TemplateBinding Width}"
Margin="{TemplateBinding Margin}"
Padding="{TemplateBinding Padding}"
Focusable="False"/>
<Popup x:Name="PopupMenu"
IsOpen="False"
Placement="Bottom"
PopupAnimation="{DynamicResource {x:Static SystemParameters.MenuPopupAnimationKey}}"
AllowsTransparency="True"
Focusable="False"
StaysOpen="False">
<Border BorderBrush="{StaticResource MpButtonNormalStrokeBrush}"
Background="{StaticResource MpButtonNormalFillBrush}"
BorderThickness="1"
CornerRadius="3"
Padding="4">
<ItemsControl ItemsSource="{Binding Favourites}" ItemTemplate="{StaticResource FavouriteMenuItemDataTemplate}"/>
</Border>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" SourceName="Bd" Value="True">
<Setter Property="IsOpen" TargetName="PopupMenu" Value="True"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
У меня определен следующий стиль. Я хотел бы связать свойство IsOpen
в Popup со свойством IsChecked
в ToggleButton.
Я пытался использовать FindAncestor, чтобы найти сетку и работать оттуда, но я не смог сделать это правильно. Есть ли способ связать эти два объекта? Если так, то как?