问题标签 [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 回答
140 浏览

wpf - CommandSource 何时会引发 CanExcute 事件

理想情况下,实现ICommandSource接口的控件何时会引发 CanExecute事件?我试图向处理程序添加一个断点以检查它何时被引发,并且每当控件呈现在屏幕上时似乎都会执行它。有人能解释一下它什么时候会被提高以及如何随意提高吗?

0 投票
1 回答
196 浏览

mvvm - MVVM - 在一个对象列表中,每个对象都包含一个命令,我怎样才能得到适当的命令来触发?

也许我的做法是错误的,但在我的视图模型中,我有一个对象列表(CGCAppSwitchboardItem),每个对象都包含一个 DelegateCommand 属性。我的意图是,我列表中的每个项目(CGCAppSwitchboardItem)都将代表我的解决方案中的一个模块,从而调用该命令将加载一个模块。或者,更好的说法是,我正在使用这个列表来构建一个按钮或菜单项列表,这些按钮或菜单项将在选择时打开请求的视图。

我遇到的问题是最后一个 CGCAppSwitchboardItem 的命令是不管按下按钮的命令。我已经通过以不同的顺序添加它们来测试这一点,无论最后添加哪个,这就是被触发的命令。我怎样才能得到适当的命令来触发?

编辑:我已经缩小了问题范围,不知道该怎么做。问题出现在我将其分配给 RunMethod 时创建的通用函数中。如果您查看下面的代码,我会在创建 CGCAppSwitchboardItem 类时分配 RunMethod。如果您查看我的通用函数,我将传入 itm.ModuleName 属性。显然,新创建的委托,即我分配给 RunMethod 的委托,保留了对 itm.ModuleName 的引用,而不是我想要的字符串值。由于这是一个循环,因此 itm 变量仍然设置为列表中的最后一个模块。因此,当调用 RunMethod() 时,它引用 itm.ModuleName 而不是“MyModuleName”。有任何想法吗?

//...为简洁起见删除了代码 private void PopulateSwitchboardItems() { if (_moduleCatalog != null) { _switchBoardItems.Clear();

System.Windows.Forms.MessageBox.Show(itm.ModuleName); _moduleManager.LoadModule(itm.ModuleName); //_moduleManager.LoadModule("ATimesheetModule"); } } ); } } }

0 投票
3 回答
3518 浏览

wpf - 带有每个选项卡绑定的 WPF 路由命令

我打算禁用和启用 TabControl 外部的按钮,就像更改当前选项卡时 TabItem 内部的按钮一样。但是 TabItem 的 CommandBindings 似乎不会影响“向上”视觉树。这样做的正确方法是什么?

使用此 XAML:

使用此代码:

0 投票
2 回答
3325 浏览

wpf - WPF:无法使用命令绑定和线程控制按钮的启用/禁用状态

我有一个 WPF 应用程序,它只包含一个按钮和一个文本框来显示一些输出。当用户单击按钮时,将启动一个禁用按钮的线程,将内容打印到输出文本框,然后线程停止(此时我希望再次启用按钮)。

该应用程序似乎正确禁用了按钮,并正确更新了文本框。但是,当线程完成时,它总是无法正确地重新启用按钮!谁能告诉我我做错了什么?

这是我的 xaml 的片段:

这是我的 ViewModel 代码(我使用的是 Josh Smith 的 MVVM 设计):

0 投票
4 回答
18464 浏览

wpf - 在 wpf 中加载窗口时如何触发命令

是否可以触发命令来通知窗口已加载。另外,我没有使用任何 MVVM 框架(从某种意义上说,框架,Caliburn,Onxy,MVVM Toolkit 等,)

0 投票
1 回答
1714 浏览

c# - 将功能区按钮直接添加到快速访问工具栏的问题

我正在尝试使用 CanAddToQuickAccessToolBarDirectly 属性将功能区按钮直接添加到快速访问工具栏。为了做到这一点,我已经阅读了一个命令必须从这个来源(http://blogs.msdn.com/b/llobo/archive/2010/08/06/wpf-ribbon-basics.aspx#评论)。当我向按钮添加命令时,它会被禁用(灰显)。

下面是与按钮关联的 XAML 代码片段、问题的直观表示以及 RibbonBar 的关联 CommandBindings:

替代文字 (链接:http: //i.stack.imgur.com/mV53U.png

对此问题的任何帮助将不胜感激。这个 RibbonControlsLibrary.DLL 是相当新的(8 月 2 日发布)。

0 投票
1 回答
179 浏览

wpf - CanExecute 方法会出错的问题

好吧,在我们的应用程序中,这通常可以正常工作。但在某些时候,CanExecute 方法都不会触发(即使我明确调用 CommandManager.InvalidateRequerySuggested(),CanExecute 方法也不会运行)。无论如何,尽管它们没有运行,但它们都设置为 false,因此绑定到 CommandBinding 的每个按钮、菜单项等都会被禁用,直到我单击 MainWindow。

现在,我怀疑是另一个 Window 导致了这种情况,当我们执行某个操作时,会弹出一个 Window,然后在执行下一个操作后,所有按钮都被禁用,而无需通过 CanExecute 方法。

有没有人见过这样的行为?非常感谢任何有关如何解决此问题的建议。

谢谢。

0 投票
1 回答
349 浏览

c# - 如何使发件人成为按钮而不是 WPF CommandBinding 中的 MainWindow?

WPF MainWindow 中的 Button 具有正常的命令属性。单击时,处理程序方法接收发送者。但发件人始终是 MainWidow。如何让发件人成为按钮?我需要它是一个特定的按钮,因为我将此命令设置为几个按钮,并希望对许多发件人使用单个处理程序。谢谢

0 投票
4 回答
4587 浏览

wpf - 如何使用路由命令的文本作为按钮内容

我在视图上有一个按钮,该按钮通过 RoutedUICommand 绑定到 ViewModel 中定义的命令。

视图中的 XAML 代码摘录:

在 View 的 CodeBehind 中,我将 ViewModel 中的命令绑定添加到视图的绑定集合中:

ViewModel 本身实现了命令:

所以命令是用文本和名称定义的“登录”。该按钮本身具有“登录”内容。有没有办法将命令的文本用作按钮的内容?

0 投票
1 回答
838 浏览

wpf - 命令绑定问题。如何启用命令按钮

我的代码在这里>>

在 xaml 上,我有文本框和按钮。由 绑定的文本框,由 绑定的url按钮AddAttackTask。当我更改文本框值时,Url 更改。主要目标是更改 url 时,按钮启用或禁用。但按钮总是禁用。

我正在使用 Model-View-ViewModel 设计模式从 WPF 应用程序中获取 RelayCommand 类

我的代码有什么问题?

请修复我的命令绑定!