问题标签 [routed-commands]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
610 浏览

wpf - WPF:ApplicationCommands 似乎忽略了 CommandTarget

我的窗口中有 aTextBox和 a ListView,我想ListView在焦点集中时上下移动 ' 的选择TextBox

在此处输入图像描述

但是,我似乎没有理解我的CommandTarget声明,它们被忽略了。MSDN 说这是 non- 的默认行为RoutedCommands,但我尝试使用的移动命令是RoutedUICommands,所以这可能不是这里的问题。

我错过了什么吗?

我的 XAML 目前看起来像这样(后面的代码是空的):

0 投票
1 回答
418 浏览

wpf - WPF VB.net - 可以为同一命令执行多个 CommandBindings 吗?

在 WPF 中,我尝试使用命令一次在多个文本框中设置所有内容。以下代码能够在切换按钮上获得一个命令来执行哪个文本框具有范围,但我似乎无法同时执行这两个命令。

我正在尝试用命令做什么?我宁愿不必在 click_event 或类似的代码中直接引用每个文本框。

谢谢您的帮助!

0 投票
3 回答
1982 浏览

c# - 在从程序代码调用 Execute 之前,我应该检查 ICommand 的 CanExecute 方法吗?

在 XAML 中使用ICommands 时,WPF 使用该CanExecute方法来启用或禁用与命令关联的控件。但是如果我Execute从程序代码调用呢?我应该先检查CanExecute以确保命令可以执行,还是应该Execute为我处理这个检查?

换句话说,我应该这样做:

或者只是这样:

0 投票
1 回答
174 浏览

wpf - 在 WPF 中缓存 CanExecute(或任何东西)?

System.Web 中的 Cache 对象非常好。

我处理我的 CommandBinding.CanExecute 有点像这样:

在我的场景中, NotInsignificantRoutine() 的返回值在 5 秒的窗口内不会改变。在 WPF 中缓存的最佳方法是什么?导入 System.Web?

0 投票
1 回答
933 浏览

silverlight-4.0 - 如何执行 Silverlight ICommand?

这是一个如此基本的问题,但我不得不问。

在 SL 中,我有这个 XAML:

而这背后的代码:

但是当我单击按钮时,命令的 Execute() 永远不会被触发。

有什么诀窍吗?

0 投票
1 回答
457 浏览

wpf - 从弹出窗口监听路由事件/命令

我有一个动态创建弹出窗口的控件。

弹出窗口包含触发路由事件/命令的控件,我想在原始控件中对其做出反应。原来的控件被设置为弹窗的放置目标。

您希望原始控件接收冒泡事件吗?我知道它在不同的视觉树中,但我想知道它们是否会被提供给放置目标。从我的代码看来不是。

任何人都可以提出一种处理这种情况的方法吗?响应不同视觉树中的事件。我想知道是否有一些我可以编写的控件位于弹出窗口的根目录中并充当原始视觉树的“桥梁”?

非常感谢,

0 投票
2 回答
11810 浏览

wpf - 如何将 ApplicationCommands 绑定到 ViewModel?

我已经成功地使用了一些使用 MVVM-Light 的自定义命令,但我希望我的应用程序能够响应标准的 ApplicationCommands,不仅在窗口级别,而且在详细的项目级别。

我有一个TreeView我希望能够复制和粘贴节点的节点。每个 TreeViewItem 都有自己的 ViewModel,它们通过HierarchicalDataTemplatesXAML 显示,因为有几种不同的类型。我已经在我的 ViewModel 类上实现了复制、粘贴以及 CanCopy 和 CanPaste 的方法。如果合适的话,我可以很容易地实现指向这些的 MVVM-Light RelayCommands,但这似乎不对。

我想使用菜单、Ctrl+C 和 Ctrl+V 或最终使用上下文菜单来访问命令。我也不想破坏 UI 中其他元素的复制/粘贴功能,例如 TextBox。为此目的使用内置的 ApplicationCommands 似乎是合适的。但是,我只看到在 UserControl 代码隐藏中处理这些示例。我没有(或以其他方式需要)UserControl,也不是真正遵循 MVVM。

有没有一种方法可以将命令绑定ApplicationCommand.CopyApplicationCommand.Paste我的 ViewModel,即在数据模板中?

0 投票
2 回答
1199 浏览

c# - 命令的 CanExecute 方法被调用但不是 Execute 方法

我已将命令绑定到功能区控件上的按钮。按钮上的 CanExecute 方法按预期调用,但单击按钮不会导致调用 Execute 方法。将属性设置为CanExecute-相关按钮已启用且可单击。CanExecutetrue

有没有其他人见过这种行为?如果是这样我该如何解决它!

编辑:

StaticCommands.ThisCommand是一个RoutedCommand输入手势为 的F5

不幸的是,我无法发布任何 xaml,因为所有内容都包含在另一个团队的库中。我假设现在是正确的。此外,使用与命令关联的键盘手势(按下F5)会导致调用执行方法。

没有抛出异常,输出窗口中没有消息,并且 snoop 显示正确绑定的所有内容。我真的很难过。

0 投票
1 回答
942 浏览

.net - 放置自定义 WPF 命令 (RoutedUICommand) 处理程序的实现代码的最佳位置

在 WPF 中,自定义命令有 command_Executed 和 command_CanExecute 等事件处理程序,最好的做法是实现逻辑不应该直接在代码隐藏类中实现,它应该只包含对更高级别实现逻辑的函数调用。

在制作自定义命令的时候,如果命令的handler functions中只有一个函数调用,直接放在code-behind里面很简单,但是如果有多个函数调用,或者函数调用在基础上返回一些东西怎么办其中要做出决定(特别是在禁用/启用命令的 command_CanExecute 函数的情况下,必须决定何时启用或禁用命令)。我一直在考虑的可能性如下,哪一个在可维护性、保持代码清洁、软件工程原则和最佳实践方面最合适?

  1. 将所有函数调用和决策语句保留在代码隐藏中(在 command_execute 或 command_execute 调用的代码隐藏中的某个函数中)。如果代码很简单,那很好,但是当后面的代码中有很多处理程序时,事情就会变得丑陋。这里没有实现代码,只有我之前提到的决策代码。

  2. 将实现逻辑保留在定义命令并使其可通过静态属性访问的类中。现在,代码隐藏中的处理程序将只有 1 个函数调用,并且如果需要,将接收返回值。

  3. 在实现应用程序实际功能的更高级别的类中实现它,以便代码隐藏处理程序只有一个函数调用。这是最有意义的,但这个选项在我心中产生了疑问,因为在某些情况下,命令处理程序可能必须调用许多不同的不相关类的方法,因此很难决定该逻辑的放置位置。

  4. 我错过的任何其他内容。

0 投票
2 回答
4121 浏览

c# - 带参数的 RoutedCommand

我正在玩RoutedCommand,我在寻找如何传递参数以便我的Executed方法将它包含在 e.Parameter 时遇到问题?

我的路由命令:

用法:

执行: