WPF:将验证错误传播到可视化树中

WPF:将验证错误传播到可视化树中,wpf,validation,propagation,Wpf,Validation,Propagation,我经常在我的应用程序中使用和重复使用用户控件 例如,如果用户输入一个整数,我有一个名为“IntegerEditor”的usercontrol,它有一个标题标签、一个用户输入文本框和一个单位标签(英寸、秒等) 我的用户控件已经有一个我称之为“IntegerValidationRule”的验证规则,该规则控制用户输入是否为整数 我有一个与验证规则关联的样式,可以更改控件背景并在工具提示中添加错误消息 有时,我在UI中使用这些基本控件,但我想添加其他验证规则,如“整数必须大于1023”,并显示特殊错误

我经常在我的应用程序中使用和重复使用用户控件

例如,如果用户输入一个整数,我有一个名为“IntegerEditor”的usercontrol,它有一个标题标签、一个用户输入文本框和一个单位标签(英寸、秒等)

我的用户控件已经有一个我称之为“IntegerValidationRule”的验证规则,该规则控制用户输入是否为整数

我有一个与验证规则关联的样式,可以更改控件背景并在工具提示中添加错误消息

有时,我在UI中使用这些基本控件,但我想添加其他验证规则,如“整数必须大于1023”,并显示特殊错误消息,如“保留1024以下的UDP端口,请选择更大的数字”

你知道我可以在其他地方添加这些验证规则,但它仍然会触发我控件上的样式吗?我曾想过将验证错误传播到可视化树中,但在网络上却没有发现什么了不起的地方

谢谢你的回答


A.Jeanrichard

嗯。。。您可以响应路由的“验证失败”事件,但这比使用负责协调不同ViewModel之间验证的应用程序级ViewModel要困难得多

嗨,兰多尔夫,谢谢你的快速回答。我从未见过任何MVVM示例使用viewModel来协调其他viewModel。事实上,我从来没有见过任何MVVM示例包含用户控件的使用。你知道吗?那会有很大帮助。关于,每个用户控件都绑定到视图模型,是吗?您的视图模型可以相互对话。让一些协调视图模型更新绑定到触发器的视图模型。