命令绑定不起作用?

发布于 2024-11-08 11:17:13 字数 667 浏览 3 评论 0原文

我正在开发一个多选项卡应用程序(例如:多选项卡文本编辑器),其中每个选项卡项目都有自己的内容。在 tabitem 的 contextmenu 中,他们是带有命令的 menuitem,比如 SelectAll 命令。

运行应用程序后,菜单项始终处于禁用状态,没有执行任何命令。

那么,我怎样才能让我的命令绑定工作呢?

代码::

在文本编辑器的上下文菜单中>

<MenuItem Command="local:TextEditor.SelectAllCommand" Header="Select All" />

在 TextEditor 的 CommandBindings 中>

<UserControl.CommandBindings>
  <CommandBinding Command="local:TextEditor.SelectAllCommand" 
                  Executed="SelectAll_Executed" CanExecute="SelectAll_CanExecute" />
</UserControl.CommandBindings>

带有 TextEditor 的 TabItem 是在运行时创建的

I working on a multi-tab application (For Ex: Multi-Tab Text Editor), where each tabitem has its own content. And in contextmenu of tabitem, their is menuitem with a command, say SelectAll command.

After running app, the menu item is always disabled, no command execution is done.

So, how can i make my commandbindings work ?

CODE ::

In Context Menu At TextEditor>

<MenuItem Command="local:TextEditor.SelectAllCommand" Header="Select All" />

In CommandBindings At TextEditor>

<UserControl.CommandBindings>
  <CommandBinding Command="local:TextEditor.SelectAllCommand" 
                  Executed="SelectAll_Executed" CanExecute="SelectAll_CanExecute" />
</UserControl.CommandBindings>

The TabItems with TextEditor are created at run time

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

碍人泪离人颜 2024-11-15 11:17:13

发生这种情况是因为 ContextMenus 是具有自己的 VisualTree 和 LogicalTree 的单独窗口。

像这样使用

<MenuItem Header="Cut" Command="Cut" CommandTarget="
          {Binding Path=PlacementTarget, 
          RelativeSource={RelativeSource FindAncestor, 
          AncestorType={x:Type ContextMenu}}}"/>

有关更多信息,请检查下面的链接

http://www.wpftutorial.net/RoulatedCommandsInContextMenu.html

This happens since the ContextMenus are separate windows with their own VisualTree and LogicalTree.

Use like this

<MenuItem Header="Cut" Command="Cut" CommandTarget="
          {Binding Path=PlacementTarget, 
          RelativeSource={RelativeSource FindAncestor, 
          AncestorType={x:Type ContextMenu}}}"/>

For more check the link below

http://www.wpftutorial.net/RoutedCommandsInContextMenu.html

陌路黄昏 2024-11-15 11:17:13

请参阅 biju 答案,您的 ContextMenu 的 DataContext 不是您所期望的。

如果您将来遇到任何绑定问题,请查看 Snoop。它是一个易于使用的工具,可以在运行时检查绑定。

我总是检查两件事:

  • 我的 DataContext 是我期望的吗?!
  • 我的绑定路径是我想要的吗?!

see biju answer, your DataContext for your ContextMenu is not the one you expect.

and if you have any binding problems in future, take a look at Snoop. its an easy to use tool to check your bindings at runtime.

i always check 2 things:

  • is my DataContext the one i expect?!
  • is my Binding Path the one i want?!
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文