简体   繁体   English

ListView:根据列值更改ContextMenu标头(样式触发器?)

[英]ListView: Change ContextMenu Header According To Column Value (Style Trigger?)

Good Evening Everyone, 各位晚上好,

I am trying to change a WPF ListView ContextMenu header depending on a column value from said ListView. 我试图根据所述ListView的列值更改WPF ListView ContextMenu标头。 Specifically I want to change it from Enable to Disable (and vice-versa) when a column binded to the value of STATUS = "Y"(hold) or "N"(not on hold). 具体来说,当列绑定到STATUS =“Y”(保持)或“N”(非保持)的值时,我想将其从启用更改为禁用(反之亦然)。 I have tried the following: 我尝试过以下方法:

 <ContextMenu.Resources>
     <Style TargetType="{x:Type MenuItem}">
         <Style.Triggers>
             <DataTrigger Binding="{Binding STATUS}" Value="Y">
                 <Setter Property="Header" Value="Enable" />
             </DataTrigger>
             <DataTrigger Binding="{Binding STATUS}" Value="N">
                 <Setter Property="Header" Value="Disable" />
             </DataTrigger>
          </Style.Triggers>
      </Style>
 </ContextMenu.Resources>

2ND Attempt: 2ND尝试:

 <ListView.ContextMenu>
                <ContextMenu x:Name="cmlv">
                    <MenuItem x:Name="cmdisableenable">
                        <MenuItem.Resources>
                            <Style TargetType="{x:Type MenuItem}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding STATUS}" Value="Y">
                                        <Setter Property="Header" Value="Enable" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding STATUS}" Value="N">
                                        <Setter Property="Header" Value="Disable" />
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </MenuItem.Resources>
                    </MenuItem>
                </ContextMenu>
            </ListView.ContextMenu>
           <MenuItem>
                    <MenuItem.Resources>
                            <Style TargetType="{x:Type MenuItem}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding STATUS}" Value="Y">
                                        <Setter Property="Header" Value="Enable" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding STATUS}" Value="N">
                                        <Setter Property="Header" Value="Disable" />
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>

                    </MenuItem.Resources>
                </MenuItem>

You have apply style on MenuItem so depends on status the header will be Disable or Enable and make sure u dont assign any value to header 你已经在MenuItem上应用了样式,所以取决于标题将是禁用或启用的状态,并确保你没有为标题分配任何值

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM