如何设置依赖于嵌套属性的触发条件?

时间:2012-11-21 03:15:55

标签: .net wpf triggers styles

我可以设置一个类似这样的触发器吗?

<Style x:Key="ContextMenuSelector" TargetType="{x:Type TreeView}">
    <Style.Triggers>
        <Trigger Property="SelectedItem.Tag" Value="MyTag">
            <Setter Property="ContextMenu" Value="{StaticResource MyTagContextMenu}"><!-- change context menu depending on selected item --></Setter>
        </Trigger>
        <!-- Other triggers depending on the value of the SelectedItem's Tag -->
    </Style.Triggers>
</Style>

我希望能够根据所选项目的标签更改树视图的ContextMenu。但是上面的代码没有编译,因为似乎不允许像Property="SelectedItem.Tag"这样的嵌套属性。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

SelectedItem的类型为对象http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.selector.selecteditem.aspx,但tag是FrameworkElement类型的属性。要指定SelectedItem类型,请尝试使用Property =&#34;(FrameworkElement.SelectedItem).Tag&#34;

http://msdn.microsoft.com/en-us/library/ms742451.aspx请参阅有关类型合格

的部分