问题标签 [commandbinding]

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 投票
6 回答
88662 浏览

.net - WPF - 如何强制命令通过其 CommandBindings 重新评估“CanExecute”

我有一个层次结构Menu中的每个MenuItem都将其Command属性设置为RoutedCommand我定义的位置。关联提供了一个回调,用于控制每个 的启用状态CommandBinding的评估。CanExecuteMenuItem

几乎可以工作。菜单项最初带有正确的启用和禁用状态。但是,当我的CanExecute回调使用的数据发生变化时,我需要该命令从我的回调中重新请求结果,以使这个新状态反映在 UI 中。

对此似乎没有任何公共RoutedCommand方法CommandBinding

请注意,当我单击或键入控件时再次使用回调(我猜它是在输入时触发的,因为鼠标悬停不会导致刷新)。

0 投票
1 回答
634 浏览

wpf - 禁用基于 WPF 命令/命令绑定的控件

使用命令很方便,因为当命令无法执行时,WPF 会自动禁用命令的来源(通常是按钮)。

显然,此功能不适用于不是命令源的控件,例如ListBox.

为非命令源控件启用此功能的最佳方法是什么。我想到了几个解决方案:

  • ListBox用 a包裹Button并更改ControlTemplate按钮的 ,以便没有镀铬。
  • 创建一个不可见的并将 的属性Button绑定到 的属性IsEnabledListBoxIsEnabledButton
  • 创建ListBox该 implements的后代ICommandSource

有没有更优雅的方式?

0 投票
2 回答
3657 浏览

c# - 如何为 WPF 命令绑定编写测试?

我有一个“命令”类:

MainWindow.xaml.cs 中的代码隐藏:

以及实现菜单栏的用户控件中的一些 XAML:

该代码有效。我喜欢所涉及的一般模式,我想继续使用它。

但是,我也在努力追求其他一些目标,例如进行测试驱动开发并通过我的单元和集成测试实现 100% 的覆盖率。我还希望 100% 符合 StyleCop 和 FxCop 警告。我被困在这里。

按照 FxCop (Microsoft.Security:CA2109) 的建议,我的MainWindow.Exit()方法是私有的,但这意味着我不能直接从测试中调用它。我想我可以将其公开并禁止显示 FxCop 消息。或者我可以使用访问器。但是我倾向于不直接针对私有方法编写测试,尤其是在这种情况下,因为所做的只是测试方法而不是命令绑定本身。

我觉得必须有其他方法从我的测试代码中调用命令,以便我可以验证命令是否按预期工作(除了手动测试)。有什么建议么?

0 投票
1 回答
17717 浏览

wpf - 在 MVVM 中接收命令参数值

我正在绑定我的命令,例如:

在这里,我还绑定了它的 CommandParameter 属性,现在如何从 NextCommand 中获取它的值。

其功能定义:

如何获取 CommandParameter 值?

提前致谢。

0 投票
5 回答
11207 浏览

c# - WPF:按下回车按钮时在搜索字段中执行命令绑定

我的 WPF 应用程序中有一个搜索字段,其中包含一个包含命令绑定的搜索按钮。这很好用,但是当在键盘上按下回车键时,如何对文本字段使用相同的命令绑定?我所看到的示例都是使用带有 KeyDown 事件处理程序的 Code behind。是否有一种聪明的方法可以使这项工作仅适用于 xaml 和命令绑定?

0 投票
2 回答
2430 浏览

wpf - 使用命令绑定将数据从视图发送到视图模型

问题:使用命令绑定时如何将数据发送到视图模型?这样,例如,当我单击一个按钮时,它会发送列表的“当前选定的索引”,以便它可以对列表的该项目执行操作


更多信息:我正在开发一个程序,其中我有一个装运清单,每个装运都有一个托盘清单。我想制作一个按钮,允许我向当前选定的货件添加新托盘。>编辑> 并通过另一个扳手进入作品,每个托盘都有一个产品清单。所以我不仅需要知道我在什么货件上,而且我还需要知道我在什么货件的哪个托盘上。

当我执行命令绑定时,我不知道如何将数据发送到 ViewModel。我想保留这个纯 MVVM,所以我不想让 ViewModel 检查视图中的任何内容。

~N


编辑:11/04/09 - 我删除了关于 ViewModel 实例化的问题部分。我将在另一个问题中再次问这个问题,因为这个问题正在解决另一个问题。我对这个问题做了一些其他的编辑,以明确我想要的方向。以及更改了一些语法位,以便当只有一个问题时它不是在谈论两个问题。

0 投票
2 回答
4440 浏览

wpf - WPF ToggleButton 和 DelegateCommand

有没有办法通过 s 确定 aToggleButton是否已检查/未检查DelegateCommand

TIA,迈克

XAML 代码如下。我正在使用ItemsControl并绑定到一个集合。我基本上想要一种在单击每个按钮时获取其切换状态的方法。

0 投票
3 回答
9622 浏览

.net - 为 TextBlock 启用命令绑定

我正在开发一个 WPF 应用程序,并且有一个 TextBlock,我想在单击时使用命令绑定来触发命令。实现这一目标的最佳方法是什么?

  • TextBlock 控件没有 Command 属性,但它有 CommandManager。这是什么?它可以用于命令绑定吗?我已经看到了许多其他控件以及此属性..

  • 是否有一些我监督过的可以使用的控制?例如是否建议使用按钮并将其样式设置为看起来不像按钮?

  • 是否有一些支持命令绑定的控件,我可以将它们包裹在 TextBlock 周围?

  • 我是否应该创建一个自定义控件,它基本上是一个 TextBlock,但具有额外的属性 Command 和 CommandArgument,可以在例如 MouseLeftButtonDown 属性上启用命令绑定。

0 投票
2 回答
531 浏览

c# - CommandBinding Ctrl + 空格键

我在实现 RoutedUICommand 的 RoutedCommand 类中处理命令。如果需要,这将帮助我通过检查他们的 CanExecute 和 Execute 来阻止或覆盖命令。我可以覆盖 EditingCommand、ApplicationCommand 等。我什至无法处理的命令之一是 Ctr + Spacebar。它是 MediaCommand 还是我找不到的其他类型?我猜它是在其他地方处理的,这就是为什么我无法控制它。

0 投票
1 回答
1516 浏览

.net - 调试 CommandBinding 的 CanExecute

我有一个Button绑定到NavigationCommands.RefreshCommand. 该命令的处理程序位于父控件中。处理程序CanExecute看起来像这样:

出于某种原因,在Button我单击窗口之前,它将保持禁用状态。

如果我单击Button并让它执行(这会导致IsConnecting暂时设置为true),它将正确禁用该按钮,但不会启用该按钮,直到我在窗口中引发另一个事件(例如单击)。

我可以使用任何工具或技巧来尝试调试绑定到按钮的命令的 CanExecute 处理程序吗?