gpt4 book ai didi

c# - 选择后 ContextMenu 不会消失。

转载 作者:行者123 更新时间:2023-11-30 18:34:17 25 4
gpt4 key购买 nike

我有以下代码将上下文菜单添加到 UI 上的文本框。用户应该能够调出上下文菜单并选择要使用的新单位。所以我的 View 模型中的 CurrentUnits 方法被绑定(bind)到文本框。我想要一个包含所有潜在单位的上下文菜单。所以我的 View 模型中的方法 Units 返回一个 string[] 的单位选项;例如英寸、厘米、英尺、米等。当用户选择其中一个时,将调用方法 NewUnits_Click。一切正常,但是当用户选择菜单选项时,上下文菜单不会消失。按下屏幕上的其他地方(如应用程序菜单栏)将清除它。有没有其他人看到这个问题,或者看到下面的代码有问题。这似乎与我拥有的 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,我强烈建议您开始这样做。即使您不是,我建议不要绑定(bind)到 Click,而是绑定(bind)到需要实现 ICommand 的 Command 属性。我认为您获得的行为是有意的,WPF 中的按钮和菜单项旨在绑定(bind)到命令,而不仅仅是 WinForms 2.0。

另一种解决方案是在代码隐藏中隐藏上下文菜单。也许this resource将帮助您实现这一目标。

关于c# - 选择后 ContextMenu 不会消失。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16321537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com