我有一个GridView,它有几个列都绑定到我的ViewModel层中的数据结构,所以我想做的是
有什么建议吗?谢谢
答案 0 :(得分:0)
您可以在ItemContainerStyle
中设置ContextMenu
,使其依赖于您可以使用的行DataTriggers
。
编辑:如果您决定在条件上交换整个ContextMenu,则结构应采用以下形式:
<Style TargetType="{x:Type ListViewItem}">
<Style.Resources>
<ContextMenu x:Key="DefaultMenu">
<!-- Rest of menu here -->
</ContextMenu>
<ContextMenu x:Key="NonDefaultMenu">
<!-- Rest of menu here -->
</ContextMenu>
</Style.Resources>
<Style.Triggers>
<DataTrigger Binding="{Binding SomeProperty}" Value="SomeValue">
<Setter Property="ContextMenu" Value="{StaticResource NonDefaultMenu}"/>
</DataTrigger>
</Style.Triggers>
<Setter Property="ContextMenu" Value="{StaticResource DefaultMenu}"/>
</Style>
您通常也可以定义ContextMenu,但如果您添加事件处理程序,它会出错,语法将是:
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<!-- Rest of menu here -->
</ContextMenu>
</Setter.Value>
</Setter>