问题标签 [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 投票
1 回答
2952 浏览

wpf - Treeview 是否使用命令绑定来展开/折叠?

WPF Treeview 响应+-击键以展开和折叠树中的节点。伟大的!

是否有一个现有命令可以绑定我的工具栏按钮或菜单项以在树视图中执行相同的操作?我在 stock 命令常量中看不到任何与展开/折叠相关的内容。

0 投票
0 回答
373 浏览

wpf - 将 CommandBindings 添加到 ContextMenus

我有一个包含许多不同类型节点的树视图。

树中的每个节点都有一个上下文菜单,该菜单是通过将其绑定到底层 ViewModel 中的 ICommand 对象数组而动态创建的。这工作正常,上下文菜单按预期工作。

但是,我的命令没有命令绑定,所以当我选择树视图项时,主菜单(即剪切/复制/粘贴)不会改变。

我的问题是如何将我的命令绑定添加到每个树视图项?

我想我可以绑定到它们,但我还没有设法让它工作。我唯一的另一个想法是在选择/取消选择树视图项时创建/删除绑定。

我还担心,如果我确实设法将命令绑定直接绑定到树视图项,那么如果树很大,这可能会占用大量资源?在需要时创建和销毁绑定更好吗?

0 投票
1 回答
1068 浏览

c# - 关于 MenuItem 的 WPF ComamndBinding 帮助

WPF 的新手......正在阅读这个WPF 路由命令,每个选项卡都有绑定,并且即将开始工作。

MenuItem 被禁用,直到我的 RuleTab (tabitem) 被选中,而不是弹出我的查找对话框,它在菜单上显示 System.Windows.Input.CommandBinding。我究竟做错了什么?

XAML:

代码隐藏:

任何建议将不胜感激!

弄清楚了!感谢那些回应。我所要做的就是将我的命令绑定移动到:

然后在我的 MenuItem 中引用 Command=Find。

0 投票
6 回答
79003 浏览

c# - WPF:如何使用 MVVM 将命令绑定到 ListBoxItem?

我刚刚开始学习 MVVM。我按照这个MVVM 教程从头开始制作了应用程序(我强烈推荐给所有 MVVM 初学者)。基本上,到目前为止,我创建的是几个文本框,用户可以在其中添加他或她的数据,一个用于保存该数据的按钮,该按钮随后会在 ListBox 中填充所有条目。

这是我卡住的地方:我希望能够双击 ListBoxItem 并触发我创建并添加到 ViewModel 的命令。我不知道如何完成 XAML 方面,即我不知道如何将该命令绑定到 ListBox(Item)。

这是 XAML:

这是视图模型:

最后,这是我希望在用户双击 EntriesListBox 中的项目后执行的 OpenEntryCommand:

请帮忙,我将不胜感激。

0 投票
1 回答
1385 浏览

c# - 执行命令不会在后面的资源字典代码中触发

我已经为它创建了资源字典和代码隐藏文件。在 XAML 中,我定义了命令绑定并添加了 Executed 处理程序:

这是后面的代码:

我不知道为什么单击按钮时命令不执行,以及为什么当我没有将 CanExecute 设置为 true 时启用按钮。我也尝试将其设置为 true,但 CanExecute 事件也没有触发。这是我使用资源字典的方式:

0 投票
1 回答
1736 浏览

wpf - WPF 矩形命令绑定 MVVM

我有以下问题我有很多矩形(或路径),我想向每个矩形添加一个命令,当我单击矩形时,一个对象将填充矩形的值(颜色,名称)。从 GUI 我想在执行命令时更改矩形的颜色如何在 MVVM 中做到这一点?

例如我有一个对象 Ractangle

0 投票
1 回答
1630 浏览

c# - DataGrid 保存按钮和 CanExecute

我在 XAML 中有一个数据网格和保存按钮。我有一个绑定到数据网格的 ObservableCollection。

如果我在数据网格中添加/删除一行,我应该能够启用“保存”按钮以允许用户保存记录。但是 ObservableCollection 的 NotifyCollectionChangedAction 无法捕捉到“编辑”(即值更改)。所以我想在调用datagrid 的currentcellchanged 事件时手动启用保存按钮(即设置e.CanExecute = true)。

由于您不能像在 WinForms 中那样设置 enable=true,因此 WPF 具有此 CanExecute 和 Executed 命令绑定。

在我的 XAML 中:

代码:

0 投票
0 回答
311 浏览

wpf - 我可以在不使用 InvalidateRequerySuggested() 的情况下在 MediaCommands 上引发 CanExecute 吗?

我有一些自定义 CommandBindings 可以确定各种 MediaCommands(播放、暂停等)的 CanExecute 状态。我想触发 CanExecute 处理程序在某些时候被调用。但是,我能弄清楚如何做到这一点的唯一方法是使用 InvalidateRequerySuggested(),它会导致一切重新计算其 CanExecute。这太过分而且很慢,所以我想找出一种更好、更有针对性的方法来更新这些命令上的 CanExecute。

看起来如果我使用了一个 DelegateCommand,我可以通过调用 RaiseCanExecuteChanged 来做到这一点,但如果可能的话,我想用现有的 MediaCommands 来做到这一点。

如果没有任何直接的方法可以做到这一点,是否有任何 hacky 解决方法?我注意到在内部重新计算 CanExecute 有一些智能(比如第一次显示 UIElements 等)

0 投票
1 回答
2964 浏览

c# - 将 CommandBindings 添加到控件与使用 RegisterClassCommandBinding 之间有区别吗?

以前我一直在使用

其中 cmdCopy_Executed 是一个非静态函数,但我见过人们使用

其中 CommandBinding 是静态的。一个比另一个更受欢迎吗?

0 投票
1 回答
1334 浏览

wpf - 如何防止 VS Shell 在 VSPackage ToolWindow 中获得键/命令绑定的优先级?

我有一个 wpf 用户控件,它接受输入手势来执行各种命令。在下面的示例图像中,用户可以按Ctrl+N执行New命令以在TreeView.

在此处输入图像描述

Ctrl+N当此用户控件托管在 WPF 应用程序中时,用户可以使用当焦点位于 时创建新项目,并且当用户在焦点位于应用程序的其他位置时TreeView按下时,将执行应用程序级命令。Ctrl+NNew

如果此用户控件托管在 VSPackage ToolWindow 中,则New在用户按下 时执行创建新文件的 VS Shell 级别命令Ctrl+N,而不管焦点是否位于TreeView.

如何防止 VS Shell 获得键/命令绑定的优先级?