C# 在WPF的ValidationRules中设置自定义错误消息
我把一切都安排得很好。如果我在ErrorMessage中设置了一些字符串,那么它将显示为无错误。 我想要的是,我想要动态/编程地设置ErrorMessage。某物C# 在WPF的ValidationRules中设置自定义错误消息,c#,wpf,C#,Wpf,我把一切都安排得很好。如果我在ErrorMessage中设置了一些字符串,那么它将显示为无错误。 我想要的是,我想要动态/编程地设置ErrorMessage。某物 MyValidation.ErrorMessage = "some new message"; username.Update() //something XAML代码 <TextBox Margin="5" Name="userName"> <TextBox.Text> <Bin
MyValidation.ErrorMessage = "some new message";
username.Update() //something
XAML代码
<TextBox Margin="5" Name="userName">
<TextBox.Text>
<Binding RelativeSource="{RelativeSource Self}" Path="Tag" Mode="OneWayToSource" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:MyValidation ErrorMessage="Static String" />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
可以在viewmodel中实现。实现GetErrors(string)
,以便根据您的情况返回不同的错误消息。您甚至可以一次返回多条消息,它们将显示在彼此下方
这是一个很好的解决方案,但是您可以自己实现它。请记住,并不是只有一种正确的方法,界面给了您很大的自由。如果您在XAML标记中为
验证规则
命名:
<Binding.ValidationRules>
<local:MyValidation x:Name="val" ErrorMessage="Static String" />
</Binding.ValidationRules>
你不能把它绑在模型上吗?没有线索?云,你让我知道怎么做@JonathanAlfaroYou无法绑定它,因为
ErrorMessage
不是依赖属性。您不能实现一个,因为您只能从单个类派生,因此不能从DependencyObject
额外派生。但是为什么要将TextBox.Text
绑定到TextBox.Tag
?为什么错误消息必须是动态的,由外部源设置?消息通常由规则本身根据实际验证结果设置。什么都没有dynamic@BionicCode谢谢,但我真的想从外部源设置错误。还有别的办法吗?除此之外还有其他解决方案吗?一切皆有可能。如果你能解释一下你到底想实现什么以及为什么,我可以为你提供一个合适的解决方案。也许你走错了路,兄弟你救了我。非常感谢你。
<Binding.ValidationRules>
<local:MyValidation x:Name="val" ErrorMessage="Static String" />
</Binding.ValidationRules>
val.ErrorMessage = "some new message";
userName.GetBindingExpression(TextBox.TextProperty)?.UpdateSource();