gpt4 book ai didi

wpf - 每次打开 ContextMenu 时如何强制绑定(bind)评估?

转载 作者:行者123 更新时间:2023-12-04 14:12:46 26 4
gpt4 key购买 nike

我有一个带有 MenuItem 的 ContextMenu:

<Grid>
<Button Content="{Binding Test}">
<Button.ContextMenu>
<ContextMenu>
<StackPanel>
<MenuItem Header="{Binding Test}"/>
</StackPanel>
</ContextMenu>
</Button.ContextMenu>
</Button>
</Grid>

Test 属性如下所示:
private Random rand;

public string Test
{
get
{
return "Test " + this.rand.Next(50);
}
}

当我右键单击按钮时,我有,例如“Test 41”。下次我打开菜单时,我的值相同。有没有办法强制菜单每次都评估绑定(bind)? (然后有“测试 3”、“测试 45”、“测试 65”......

最佳答案

这是我在相同情况下使用的 hack:

命名您的上下文菜单并创建您自己的 RoutedCommand,我将它们用于所有按钮和菜单,因为它们具有启用或禁用控件的 CanExecute 方法和调用以完成工作的 Execute 方法。每次打开上下文菜单时都会调用 CanExecute 方法。这意味着您可以进行自定义处理以查看是否应该启用它,或者您可以更改菜单的内容,这有利于在保存不同内容时更改菜单。我们用它来表示,当用户编辑 xyx 时,保存 xyx..。

无论如何,如果菜单被命名,您可以在 CanExecute 上修改其内容。 (如果命令源自菜单,您无论如何都会将其作为事件 CanExecute 的发送者,但有时我喜欢将它们的范围扩大,因为您可以为它们分配键盘快捷键,这些快捷键可以在它们范围内的任何地方执行。)

关于wpf - 每次打开 ContextMenu 时如何强制绑定(bind)评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1192609/

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