我想創建一個通用模板,我可以使用綁定父屬性來設置幾個屬性。無法觸發Menuitem.icon圖像綁定上的DataTrigger
這裏是代碼:
<MenuItem Header="Item 1 "
IsEnabled="false">
<MenuItem.Icon>
<Image Source="{StaticResource MyImage}" Width="20" >
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=MenuItem, AncestorLevel=2}, Path=IsEnabled}" Value="false">
<Setter Property="Effect" Value="{StaticResource GrayScaleEffect}"/>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=MenuItem, AncestorLevel=2}, Path=IsEnabled}" Value="true">
<Setter Property="Effect" Value="{x:Null}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</MenuItem.Icon>
</MenuItem>
問題我面對的是下面的代碼時,菜單項的IsEnable屬性設置爲false,沒有被觸發。
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=MenuItem, AncestorLevel=2}, Path=IsEnabled}" Value="false">
<Setter Property="Effect" Value="{StaticResource GrayScaleEffect}"/>
</DataTrigger>
我也試過TemplatedParent,TemplateBinding但沒有工作過。我將不勝感激任何幫助。
。 https://msdn.microsoft.com/en-us/library/ms747082(v=vs.90).aspx – tgpdyk
我能想到的最短解決方案是使用來自VM的屬性 – user1414925
它工作嗎?作爲替代方案,您可以刪除菜單,但使用Listbox或ListView並將其託管在Popup中。 – tgpdyk