Wpf 验证。caliburn micro的错误附加事件
下面是我的代码隐藏中的工作和错误处理程序 XAML: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 />
<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列验证并没有以正确的方式工作。再者,我得到的每一个新知识对下一个任务都是无用的。