Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MenuItem可见性绑定的上下文菜单_C#_Wpf_Mvvm Light - Fatal编程技术网

C# MenuItem可见性绑定的上下文菜单

C# MenuItem可见性绑定的上下文菜单,c#,wpf,mvvm-light,C#,Wpf,Mvvm Light,我需要为菜单项创建上下文菜单。关联菜单的可见性绑定到ViewModel 当属性使用MVVM灯光更改为true时,即使没有右键单击菜单项,也会在UI中显示上下文菜单。当值为false时,如何隐藏上下文菜单,并使其仅在右键单击时可见 private Boolean _IsEditable; public Boolean IsEditable { get { return _IsEditable; } set { if (_IsEditable == value

我需要为菜单项创建上下文菜单。关联菜单的可见性绑定到ViewModel

当属性使用MVVM灯光更改为true时,即使没有右键单击菜单项,也会在UI中显示上下文菜单。当值为false时,如何隐藏上下文菜单,并使其仅在右键单击时可见

private Boolean _IsEditable;
public Boolean IsEditable
{
    get { return _IsEditable; }
    set
    {
        if (_IsEditable == value) return;
        _IsEditable = value;
        RaisePropertyChanged("IsEditable");
    }
}

<Menu DockPanel.Dock="Top">
   <MenuItem Header="{Binding Menu.Business}" Visibility="{Binding allowUI, Converter={StaticResource BoolToVisConverter} }">
      <MenuItem.ContextMenu>
         <ContextMenu Visibility="{Binding Menu.IsEditable, Converter={StaticResource BoolToVisConverter} }">
            <MenuItem>
               <MenuItem.Header>
                  <TextBox Text="{Binding Menu.Business, UpdateSourceTrigger=PropertyChanged}" LostFocus="end_change_UI" />
               </MenuItem.Header>
            </MenuItem>

         </ContextMenu>
      </MenuItem.ContextMenu>
   </MenuItem>
</Menu>
private Boolean可编辑;
公共布尔值可编辑
{
获取{return\u IsEditable;}
设置
{
if(_IsEditable==值)返回;
_IsEditable=值;
RaisePropertyChanged(“IsEditable”);
}
}

您可以将
样式
应用于
菜单项
,当
可编辑
源属性设置为
时,该样式只设置
上下文菜单
属性:

<Menu DockPanel.Dock="Top">
    <MenuItem Header="{Binding Menu.Business}" Visibility="{Binding allowUI, Converter={StaticResource BoolToVisConverter} }">
        <MenuItem.Style>
            <Style TargetType="MenuItem" BasedOn="{StaticResource {x:Type MenuItem}}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Menu.IsEditable}" Value="True">
                        <Setter Property="ContextMenu">
                            <Setter.Value>
                                <ContextMenu>
                                    <MenuItem>
                                        <MenuItem.Header>
                                            <TextBox Text="{Binding Menu.Business, UpdateSourceTrigger=PropertyChanged}" LostFocus="end_change_UI" />
                                        </MenuItem.Header>
                                    </MenuItem>
                                </ContextMenu>
                            </Setter.Value>
                        </Setter>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </MenuItem.Style>
    </MenuItem>
</Menu>

您可以将
样式
应用于
菜单项
,当
可编辑
源属性设置为
时,该样式只设置
上下文菜单
属性:

<Menu DockPanel.Dock="Top">
    <MenuItem Header="{Binding Menu.Business}" Visibility="{Binding allowUI, Converter={StaticResource BoolToVisConverter} }">
        <MenuItem.Style>
            <Style TargetType="MenuItem" BasedOn="{StaticResource {x:Type MenuItem}}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Menu.IsEditable}" Value="True">
                        <Setter Property="ContextMenu">
                            <Setter.Value>
                                <ContextMenu>
                                    <MenuItem>
                                        <MenuItem.Header>
                                            <TextBox Text="{Binding Menu.Business, UpdateSourceTrigger=PropertyChanged}" LostFocus="end_change_UI" />
                                        </MenuItem.Header>
                                    </MenuItem>
                                </ContextMenu>
                            </Setter.Value>
                        </Setter>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </MenuItem.Style>
    </MenuItem>
</Menu>


谢谢,就这么简单!工作完美谢谢这么简单!完美地工作