C# ContextMenu赢了';选择后不要离开。
下面的代码将上下文菜单添加到UI上的文本框中。用户应该能够打开上下文菜单并选择要使用的新单元。因此,我的视图模型中的CurrentUnits方法绑定到文本框。我想要一个包含所有潜在单位的上下文菜单。因此,我的视图模型中的方法Units返回一个包含单元选项的字符串[];例如英寸、厘米、英尺、米等。当用户选择一种方法时,会调用NewUnits\u Click。所有这些都可以正常工作,但是当用户选择菜单选项时,contextmenu不会消失。按屏幕上的其他地方,如应用程序菜单栏,将清除它。有没有其他人看到过这个问题,或者看到下面的代码有什么问题。这似乎与我拥有的ItemTemplate/DataTemplate有关,因为手动创建一组菜单项很好C# ContextMenu赢了';选择后不要离开。,c#,windows-phone-7,xaml,contextmenu,C#,Windows Phone 7,Xaml,Contextmenu,下面的代码将上下文菜单添加到UI上的文本框中。用户应该能够打开上下文菜单并选择要使用的新单元。因此,我的视图模型中的CurrentUnits方法绑定到文本框。我想要一个包含所有潜在单位的上下文菜单。因此,我的视图模型中的方法Units返回一个包含单元选项的字符串[];例如英寸、厘米、英尺、米等。当用户选择一种方法时,会调用NewUnits\u Click。所有这些都可以正常工作,但是当用户选择菜单选项时,contextmenu不会消失。按屏幕上的其他地方,如应用程序菜单栏,将清除它。有没有其他人
<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
另一个解决方案是在代码中隐藏上下文菜单。也许会帮助你实现这一目标 您是否尝试过使用点击事件?我看不到可用的点击事件?您使用的是什么版本?此活动应可用。