Wpf 验证。caliburn micro的错误附加事件

Wpf 验证。caliburn micro的错误附加事件,wpf,xaml,caliburn.micro,Wpf,Xaml,Caliburn.micro,下面是我的代码隐藏中的工作和错误处理程序 XAML: <Window Validation.Error="ErrorHandler"> <TextBox> <TextBox.Text> <Binding Path="SomeProperty" NotifyOnValidationError="True"> <local:MyValidationRule />

下面是我的代码隐藏中的工作和错误处理程序

XAML:

 <Window Validation.Error="ErrorHandler">   

  <TextBox>
    <TextBox.Text>
        <Binding Path="SomeProperty" NotifyOnValidationError="True">
            <local:MyValidationRule />
        </Binding>
     </TextBox.Text>
  </TextBox>

  </Window>
 <Window cal:Message.Attach="[Event Validation.Error] = [Action OnErrorsChanged($eventArgs)]">   

  <TextBox>
    <TextBox.Text>
        <Binding Path="SomeProperty" NotifyOnValidationError="True">
            <local:MyValidationRule />
     </Binding>
     </TextBox.Text>
  </TextBox>

  </Window>
现在,我想使用Caliburn Micro的消息将其传输到我的ViewModel。附加 委托方法从未被调用,你知道为什么吗

XAML:

 <Window Validation.Error="ErrorHandler">   

  <TextBox>
    <TextBox.Text>
        <Binding Path="SomeProperty" NotifyOnValidationError="True">
            <local:MyValidationRule />
        </Binding>
     </TextBox.Text>
  </TextBox>

  </Window>
 <Window cal:Message.Attach="[Event Validation.Error] = [Action OnErrorsChanged($eventArgs)]">   

  <TextBox>
    <TextBox.Text>
        <Binding Path="SomeProperty" NotifyOnValidationError="True">
            <local:MyValidationRule />
     </Binding>
     </TextBox.Text>
  </TextBox>

  </Window>
编辑:这也不起作用

<i:Interaction.Triggers>
     <i:EventTrigger EventName="Validation.Error">
         <cal:ActionMessage MethodName="OnErrorsChanged" />         
     </i:EventTrigger>
 </i:Interaction.Triggers>


谢谢

我也有同样的问题,似乎我找到了答案

这不是你想要的。但我相信,这会有所帮助

编辑:

另一个额外的技巧。以下是我的代码片段:

<TextBox Grid.Row="2"  >
    <i:Interaction.Triggers>
        <ui:RoutedEventTrigger RoutedEvent="Validation.ValidationError">
            <cal:ActionMessage MethodName="OnTextboxError">
                <cal:Parameter Value="$source" />
                <cal:Parameter Value="$eventArgs" />
            </cal:ActionMessage>
        </ui:RoutedEventTrigger>
    </i:Interaction.Triggers>

    <TextBox.Text>
        <Binding Path="TTT" NotifyOnValidationError="True" >
            <Binding.ValidationRules>
                <ui:TextValidationRule ValidationStep="UpdatedValue" />
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>


public void OnTextboxError(object sender, ValidationErrorEventArgs e)
{

}

public void OnTextboxError(对象发送方,ValidationErrorReventArgs e)
{
}

所以诀窍是:“RouteEvent=“Validation.ValidationError”“

我认为您不能像Caliburn.Micro那样执行
验证。错误
。不确定在执行
消息时是否支持附加属性。附加
。我也不确定..您到底想做什么?为什么要处理ErrorsAnged?是的,但是验证错误是从我视图中自定义控件的内部工作中引发的,它与我的ViewModel中的任何属性无关,我只想通知我的ViewModel该验证。引发了错误事件并传递了参数,我可以想办法做到这一点,但我希望这种简单的方法能奏效。可能在这里有用:或者在这里:或者这家伙的固定样本:我实际上不再使用它了,WPF验证很好,我将使用“吮吸”这个词。但谢谢你,我相信你所做的一切都会成功的,Message.Attach的所有问题似乎都是使用简短的语法出现的。我同意你的看法。这是某种精神错乱。我花了几天的时间来确定为什么textbox验证工作得“几乎很好”,但datagrid列验证并没有以正确的方式工作。再者,我得到的每一个新知识对下一个任务都是无用的。