首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有附加事件的EventToCommand

带有附加事件的EventToCommand
EN

Stack Overflow用户
提问于 2013-07-01 09:23:40
回答 1查看 4.2K关注 0票数 4

我使用附加事件Validation.Error的TextBox。

Validation.Error

我想把它绑定到EventToCommand

通常情况下,它不起作用:

代码语言:javascript
复制
 <TextBox Height="20" Width="150" Text="{Binding MyProperty,NotifyOnValidationError=True,ValidatesOnDataErrors=True}" ><!--Validation.Error="TextBox_Error"-->
     <i:Interaction.Triggers>
        <i:EventTrigger EventName="Validation.Error">
           <mvvm:EventToCommand Command="{Binding MyCmd}" PassEventArgsToCommand="True" ></mvvm:EventToCommand>
        </i:EventTrigger>
     </i:Interaction.Triggers>
  </TextBox>

所以我找到了一种方法,你可以在下面的链接上看到:

将mvvm事件附加到附加事件的命令中。

但我发现了一个错误:

代码语言:javascript
复制
RoutedEventConverter cannot convert from System.String.

有人能帮忙吗?

编辑:

我在ViewModel的命令

代码语言:javascript
复制
  public MyViewModel()
    {
        MyCmd = new RelayCommand<RoutedEventArgs>(Valid);
    }

    public RelayCommand<RoutedEventArgs> MyCmd { get; set; }

    private void Valid(RoutedEventArgs args)
    {
        //Do something
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-01 10:11:16

基于你发布的链接,

RoutedEventTrigger需要一个RoutedEvent,您的xaml无法将字符串Validation.Error转换为所需的类型。

所以切换

代码语言:javascript
复制
<i:Interaction.Triggers>
  <view_model:RoutedEventTrigger RoutedEvent="Validation.Error">
    <mvvm:EventToCommand Command="{Binding MyCmd}" PassEventArgsToCommand="True" />
  </view_model:RoutedEventTrigger>
</i:Interaction.Triggers>

代码语言:javascript
复制
<i:Interaction.Triggers>
  <view_model:RoutedEventTrigger RoutedEvent="{x:Static Validation.ErrorEvent}">
    <mvvm:EventToCommand Command="{Binding MyCmd}" PassEventArgsToCommand="True" />
  </view_model:RoutedEventTrigger>
</i:Interaction.Triggers>

应该没问题的

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17401082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档