我无法想象这个人/迫切需要帮助。
我有一个ItemsControl和一个DataTemplate作为ItemTemplate
即
<DataTemplate>
<StackPanel>
<TextBox Text={Binding Prop1}/>
<TextBox Text={Binding Prop2}/>
</StackPanel>
</DataTemplate>
我已经看到了很多将验证应用于单个绑定目标的示例(即仅分别验证每个文本框)。如果在使用<AdornedelementPlaceholder/>
时出现任何错误(Prop1或Prop2),我希望对整个DataTemplate进行直观的更改,正如我在许多示例中看到的那样。
最重要的是,如果对象中代表DataTemplate的DataContext的任何项目有问题,有没有办法显示错误?
答案 0 :(得分:2)
您可以为两个绑定定义自定义ErrorTemplates,它将StackPanel定义为Validation.ValidationAdornerSite。 这样,只要检测到错误,就可以装饰StackPanel而不是文本框。
有关详细信息,请参阅此链接: Vincent Sibal about validation with ValidationAdornerSite
答案 1 :(得分:1)
尝试在StackPanel上设置BindingGroup,如下所示,并在每个TextBox上设置单独的验证规则。我实际上没有尝试过,但它应该有用。
<StackPanel>
<StackPanel.BindingGroup>
<BindingGroup />
</StackPanel.BindingGroup>
<TextBox Text={Binding Prop1}/>
<TextBox Text={Binding Prop2}/>
</StackPanel>