按钮样式的EventToCommand

发布于 2024-10-15 07:42:47 字数 674 浏览 2 评论 0原文

我想为用户控件上的所有按钮分配相同的命令。我使用 MVVM Light 并且尝试了所有组合。我也尝试过使用 EventSetter,但这不允许绑定到 ViewModel 中的命令

以下是我尝试执行的示例:

设计时错误:“EventTrigger”类型的值无法添加到“TriggerCollection”类型的集合或字典中。

运行时错误:值“System.Windows.Interactivity.EventTrigger”不是类型“System.Windows.TriggerBase”,不能在此通用集合中使用

I want to assign the same command to all my buttons on my user control. I use MVVM Light and I have tried all combinations. I have also tried to use EventSetter, but this does not allow binding to a command in the ViewModel

Here is a sample of what I am trying to do:
<Style x:Key="CalculatorButton" TargetType="telerik:RadButton">
<Setter Property="Margin" Value="2"/>
<Setter Property="Cursor" Value="Hand"/>
<Style.Triggers>
<i:EventTrigger EventName="Click">
<cmd:EventToCommand Command="{Binding ButtonClick}"/>
</i:EventTrigger>
</Style.Triggers>
</Style>

Design Time error: A value of type 'EventTrigger' cannot be added to a collection or dictionary of type 'TriggerCollection'.

Runtime Error: The value \"System.Windows.Interactivity.EventTrigger\" is not of type \"System.Windows.TriggerBase\" and cannot be used in this generic collection

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吖咩 2024-10-22 07:42:47

不幸的是,i:EventTriggerEventTrigger 不同。前者是 System.Windows.Interactivity 的一部分,后者是 WPF 的核心部分。由于 EventToCommand 使用 System.Windows.Interactivity,因此您必须使用与 Style.Triggers 不同的机制才能在样式中使用它。您可以使用我在 StackOverflow 答案中描述的技术:

Unfortunately, an i:EventTrigger is not the same thing as an EventTrigger. The former is part of the System.Windows.Interactivity and the latter is a core part of WPF. Since EventToCommand uses System.Windows.Interactivity, you'll have to use a different mechanism than Style.Triggers to use it in a style. You can use my technique described in this StackOverflow answer:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文