Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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# ContextMenu赢了';选择后不要离开。_C#_Windows Phone 7_Xaml_Contextmenu - Fatal编程技术网

C# ContextMenu赢了';选择后不要离开。

C# ContextMenu赢了';选择后不要离开。,c#,windows-phone-7,xaml,contextmenu,C#,Windows Phone 7,Xaml,Contextmenu,下面的代码将上下文菜单添加到UI上的文本框中。用户应该能够打开上下文菜单并选择要使用的新单元。因此,我的视图模型中的CurrentUnits方法绑定到文本框。我想要一个包含所有潜在单位的上下文菜单。因此,我的视图模型中的方法Units返回一个包含单元选项的字符串[];例如英寸、厘米、英尺、米等。当用户选择一种方法时,会调用NewUnits\u Click。所有这些都可以正常工作,但是当用户选择菜单选项时,contextmenu不会消失。按屏幕上的其他地方,如应用程序菜单栏,将清除它。有没有其他人

下面的代码将上下文菜单添加到UI上的文本框中。用户应该能够打开上下文菜单并选择要使用的新单元。因此,我的视图模型中的CurrentUnits方法绑定到文本框。我想要一个包含所有潜在单位的上下文菜单。因此,我的视图模型中的方法Units返回一个包含单元选项的字符串[];例如英寸、厘米、英尺、米等。当用户选择一种方法时,会调用NewUnits\u Click。所有这些都可以正常工作,但是当用户选择菜单选项时,contextmenu不会消失。按屏幕上的其他地方,如应用程序菜单栏,将清除它。有没有其他人看到过这个问题,或者看到下面的代码有什么问题。这似乎与我拥有的ItemTemplate/DataTemplate有关,因为手动创建一组菜单项很好

    <TextBlock Width="100" Text="{Binding CurrentUnits}" TextAlignment="Right">
        <toolkit:ContextMenuService.ContextMenu>
            <toolkit:ContextMenu ItemsSource="{Binding Units}">
                <toolkit:ContextMenu.ItemTemplate>
                    <DataTemplate>
                        <toolkit:MenuItem Header="{Binding}" Click="NewUnits_Click" />
                    </DataTemplate>
                </toolkit:ContextMenu.ItemTemplate>
            </toolkit:ContextMenu>
        </toolkit:ContextMenuService.ContextMenu>
    </TextBlock>

如果您在使用WPF时没有使用MVVM,我强烈建议您开始这样做。即使您不是,我建议您不要绑定,而是单击Command属性上的bind,该属性需要实现ICommand。我认为您得到的行为是有意的,WPF中的按钮和菜单项旨在绑定到命令,而不仅仅是WinForms 2.0


另一个解决方案是在代码中隐藏上下文菜单。也许会帮助你实现这一目标

您是否尝试过使用点击事件?我看不到可用的点击事件?您使用的是什么版本?此活动应可用。