Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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
Wpf ContextMenu项资源绑定问题_Wpf_Binding_Mvvm_Contextmenu_Itemssource - Fatal编程技术网

Wpf ContextMenu项资源绑定问题

Wpf ContextMenu项资源绑定问题,wpf,binding,mvvm,contextmenu,itemssource,Wpf,Binding,Mvvm,Contextmenu,Itemssource,wpf usercontrol的ContextMenu存在问题。我写了一个usercontrol,这个usercontrol有一个windowsformhost,我想用wpf上下文菜单处理windows控件的右键上下文菜单 因此,我向wpf用户控件发送一条消息以调用contextMenu.IsOpen=true,并将contextMenu.ItemsSourceProperty填充为绑定。但是当我调用contextmenu.IsOpen=true,contextmenu.Items.Count=

wpf usercontrol的ContextMenu存在问题。我写了一个usercontrol,这个usercontrol有一个windowsformhost,我想用wpf上下文菜单处理windows控件的右键上下文菜单

因此,我向wpf用户控件发送一条消息以调用contextMenu.IsOpen=true,并将contextMenu.ItemsSourceProperty填充为绑定。但是当我调用contextmenu.IsOpen=true,contextmenu.Items.Count==0时,我如何解决这个问题

这是我的密码:

<UserControl x:Class="ControlEase.Inspec.Drawing.CanvasEditorView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:ControlEase.Inspec.Drawing"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
    <Style TargetType="{x:Type MenuItem}">
        <Setter Property="Header" Value="{Binding Name}"/>
        <Setter Property="Command" Value="{Binding Command}"/>
    </Style>
    <ContextMenu x:Key="graphicsMenu" ItemsSource="{Binding Commands}"/>
</UserControl.Resources>
<UserControl.ContextMenu>
    <ContextMenu ContextMenu="{StaticResource graphicsMenu}"/>
</UserControl.ContextMenu>
<Grid>
    <local:InitializedUserControl local:LoaderHelper.InitializedCommand="{Binding OpenCommand}" >
        <WindowsFormsHost x:Name="windowsHost"  local:CanvasContainerExtensions.Canvas="{Binding Model}"/>
        <EventCommander.Mappings>
            <CommandEvent Event="GotFocus" Command="{Binding ActiveCommand}"/>
            <CommandEvent Event="LostFocus" Command="{Binding DeActiveCommand}"/>
        </EventCommander.Mappings>
    </local:InitializedUserControl>
</Grid>


当我在xaml.cs中得到消息时,我调用了ContextMenu.IsOpen=true。上下文菜单!=null,但ContextMenu.Itmes.Count==0,并且输出板中没有绑定错误。请提供帮助。

在这里,您正在设置
上下文菜单的
属性:

<ContextMenu ContextMenu="{StaticResource graphicsMenu}"/>
<UserControl.ContextMenu>
    <ContextMenu ItemsSource="{Binding Commands}"/>
</UserControl.ContextMenu>