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

wpf - MVVM 多命令处理程序

我的应用程序层使用 DialogPresenters 在各种对话框(模式、启动屏幕等)中显示一些 ViewModel。

这个设置真的很好,除了如果我的 ViewModel 决定它需要在 CancelCommand 上做一些事情(这是完全合理的),那么它将取代演示者对 Terminate() 的调用,反之亦然。

我想做的是:

本着与附加事件处理程序相同的精神。

  1. 这在 C#.NET 3.5 中可行吗?
  2. 我将如何实现它?
  3. 这是不好的 MVVM 做法吗?

谢谢

D

0 投票
1 回答
1005 浏览

wpf - WPF CustomControl 命令和数据绑定

好吧,我有一个名为 Dialog 的自定义控件来解决问题这是我的 vb.net 代码:

这是我的xaml:

但是 YesCommand 似乎不起作用,但如果我把 OkCommand 它工作,那么为什么我不能绑定到在代码隐藏(或控制代码)中定义和设置的命令?

0 投票
5 回答
9683 浏览

c# - WPF 中的键绑定

我是 WPF 新手,在我正在构建的应用程序中,我想在按下 alt 键时显示主菜单,就像 vista 和 Windows 7 中的 Windows 资源管理器一样。我尝试使用仅带有修饰符的键绑定设置,但这似乎不起作用。

到目前为止,代码如下:

p>

我还希望菜单在失去焦点时消失。

有任何想法吗?

0 投票
2 回答
5354 浏览

wpf - 我可以在同一个控件上为同一个命令有多个 CommandBindings 吗?

我有一个 UserControl,它将一个 CommandBinding 添加到它的 CommandBindings 集合中以处理特定的命令。后来我在一个窗口中使用了这个控件,并希望将另一个绑定添加到同一个控件以添加其他行为。但问题是,当我这样做时,似乎当我将另一个 CommandBinding 添加到控件的 CommandBindings 集合时,它会替换已经为同一命令创建的任何绑定。所以看起来一个控件每个控件只能有一个 CommandBinding,这是正确的吗?

请参阅下面的代码示例,该示例尝试为同一个保存命令设置两个 CommandBindings。

最初我在编写这段代码时期待编译时或运行时异常,但很惊讶它没有抱怨。接下来虽然我很失望,因为我的 CommandBinding_Executed 处理程序只被调用一次,而不是我希望的两次。

更新: 经过一些测试,我的第二个 CommandBinding 似乎没有覆盖我的第一个,而是似乎即使我没有在我的事件处理程序中将 Handled 设置为 true,第一个命令绑定也会吞噬命令。在这一点上,我很确定我的问题的解决方案是了解为什么即使 Handled 未设置为 true,路由命令也不会传播到第一个处理程序。

更新: 我发现了这个很棒的小消息,它只是证实了 WPF 中命令路由背后的一些奇怪行为。

更新: 关于如何解决每个命令似乎只能有一个有效的 CommandBinding 这一事实的一个想法是,默认的 CommandBinding 类似乎将 Executed 和 CanExecute 公开为事件,这当然像所有事件一样可以有多个处理程序. 然后的想法是使用标准 CommandBindings.Add 方法之外的其他方法向命令添加额外的处理程序。也许这可以通过 Control 类上的扩展方法并结合自定义 CompositeCommandBinding 类来完成,该类允许我们在一个主绑定中聚合多个绑定。

0 投票
1 回答
3492 浏览

.net - 在命令绑定中使用 WPF 控件自己的属性

我有一个切换按钮。我正在使用命令绑定,并且我想将其 IsChecked 属性的值作为参数传递。如果不命名 ToggleButton 并使用其名称来解决自身问题,我该如何做到这一点?

目前我正在通过命名控件来解决这个问题,但我认为这可以做得更好吗?

0 投票
1 回答
2465 浏览

wpf - WPF 两个命令处理程序,一个命令

我来自第三方控件。它正在实现 ApplicationCommands.SelectAll。但是我想要的行为略有不同。没有我可以覆盖的虚拟方法,当我注册一个类处理程序时,就像这样

我的方法没有被调用。我派生的第三方控件是标记

e.Handled=true;

在它的命令处理程序中(我知道这是因为我已经看到了源代码,但我无法修改它)

我能做些什么?

0 投票
1 回答
748 浏览

c# - WPF 中的自定义命令允许“实时”更改依赖项属性值

我有一个场景,在我的自定义控件中,我有一个名为MinValuetype的自定义依赖属性int

我想允许用户通过键盘输入 Ctrl++(增加)和 Ctrl+-(减少)来更改该值。我知道这可以通过命令来完成,但是对于在哪里实现这些命令一无所知。无论窗口中的哪个控件具有焦点,用户都应该能够使用前面提到的键盘快捷键。

我想我必须在我的自定义控件中实现命令,因为只有那个控件知道如何处理键盘快捷键,但是因为我有一个充满自定义控件的列表框,每个都应该处理快捷键,我不知道如何那行得通。任何指针?一如既往的感谢!

0 投票
1 回答
3253 浏览

c# - 在 WPF 中,如何在控件模板中获取命令以绑定到父级中的属性?

我对 WPF 比较陌生,有时它会让我头晕目眩。但是,我确实喜欢它背后的强大功能,尤其是与 MVVM 模型一起使用时。

我有一个ControlTemplate包含一个Button. 我ControlTemplate在自定义控件中使用它。我想在自定义控件上添加一个属性,该属性将绑定ButtonControlTemplate. 基本上,它的右侧是一个ComboBox允许Button用户弹出搜索对话框的a。由于此控件可能多次出现在用户控件上,因此我需要能够将每个控件潜在地绑定到不同的命令(搜索产品、搜索客户等)。

但是,我一直无法弄清楚如何做到这一点。

这是一些示例 XAML:

我想我可以通过做这样的事情来让它工作:

但它不起作用。

任何帮助将不胜感激。

0 投票
2 回答
2808 浏览

wpf - 对 Canvas 使用 WPF 命令不起作用

我有一个从Canvas. 它包含很少的ApplicationCommandslike New// etc. 添加这样Open-Save

New_Enabled总是返回真。

此控件用于具有菜单栏的 wpf 项目中;新/打开/保存菜单按钮出现在此菜单栏中,它们的Command设置分别ApplicationCommand如下 -

当焦点存在时,命令可以正常工作,Canvas但一旦焦点转移到其他控件,新按钮就会被禁用。我试过设置CommandTarget到主窗口,但这也不起作用。

为什么会发生这种情况以及如何确保始终启用新菜单按钮?

0 投票
3 回答
897 浏览

wpf - WPF CommandBinding 不在顶级项目/窗口/此

我想要的只是不同选项卡上的不同绑定,因此切换选项卡会切换命令可用性。我认为 CommandBindings 就是这样工作的。

但是我花了最后一段时间试图让这个简单的样本工作。要么我从根本上误解了(这不是第一次),要么出了点问题。

我将 CommandBinding 添加到 textBoxA 但未添加到 textBoxB。在它们之间移动应该启用和禁用设置为相应命令的按钮。

将 CommandBinding 添加到 Window 可以很好地启用按钮,但这会扼杀特定于项目的 CommandBindings 的全部意义。

使用此 XAML

在后面使用此代码

您会看到(如果您尝试此代码)该按钮仍然处于禁用状态,即使您从一个文本框移动到另一个文本框也是如此。(即使 textBoxA 应该启用按钮,因为它实现了按钮的 CommandBinding)。

这应该如何工作?

先感谢您。