Validation.Error与校准微的附加事件
下面的代码和ErrorHandler在我的代码后面被调用。Validation.Error与校准微的附加事件
XAML:
<Window Validation.Error="ErrorHandler">
<TextBox>
<TextBox.Text>
<Binding Path="SomeProperty" NotifyOnValidationError="True">
<local:MyValidationRule />
</Binding>
</TextBox.Text>
</TextBox>
</Window>
CS:
private void ErrorHandler(object sender, ValidationErrorEventArgs e)
{
............
}
现在我想给传送到使用卡利Micro的Message.Attach我的ViewModel 委派的方法不会被调用,任何想法为什么?
XAML:
<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>
CS:(在我的视图模型)
private void OnErrorsChanged(ValidationErrorEventArgs e)
{
............ this code is never reached.
}
编辑:这也不起作用
<i:Interaction.Triggers>
<i:EventTrigger EventName="Validation.Error">
<cal:ActionMessage MethodName="OnErrorsChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
感谢。
我有同样的问题,它似乎是我找到了答案
using attached events with caliburn micro Message.Attach
这不是你在寻找什么。但我相信,这应该有所帮助。
编辑:
另一个额外的伎俩。这里是我的代码片段:
<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)
{
}
因此,关键是:“RoutedEvent =” Validation.ValidationError“”
我实际上不再使用它,WPF验证以及我我会用“吸”这个词。 但是,由于我相信你所做的一切都会起作用,Message.Attach的所有问题似乎都是使用Shorted语法发生的。 –
我同意你的意见。这是一种deli妄。我花了几天的时间来确定为什么文本框验证“工作的很好”,但是datagrid列验证无法正常工作。更重要的是,我获得的每个新知识都将在下一个任务中无用。 –
我不认为你可以做'Validation.Error'作为Caliburn.Micro可能找不到它。不确定在执行'Message.Attach'时是否支持附加属性。 –
我不确定是否.. –
无论如何你想做什么?为什么你想要处理ErrorsChanged? –