最近发现在TabControl 中使用数据验证有个特别闹心的情况,就是在切换TabItem后验证效果居然没有了!!!
关键是红色的框框也没有了!!!
TabItem01 块代码是优化后的,使用AdornerDecorator 作为TabItem顶层装饰器即可解决这个问题。
TabItem02 块代码是有问题的,切换TabItem后验证会失效。
网上查了资料 看歪果仁是这么解决的,实在没有找到根本原因。以后有空在研究吧 哈哈
<Grid>
<TabControl>
<TabItem Header="TabItem01">
<AdornerDecorator>
<Grid>
<TextBox Width="100" Height="30" HorizontalAlignment="Left" VerticalAlignment="Top">
<TextBox.Text>
<Binding Path="UserName" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True" >
<Binding.ValidationRules>
<rule:StringValidationRule MinLen="5" MaxLen="10"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
</Grid>
</AdornerDecorator>
</TabItem>
<TabItem Header="TabItem02">
<Grid>
<TextBox Width="100" Height="30" HorizontalAlignment="Left" VerticalAlignment="Top">
<TextBox.Text>
<Binding Path="Address" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True" >
<Binding.ValidationRules>
<rule:StringValidationRule MinLen="5" MaxLen="10"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
</Grid>
</TabItem>
</TabControl>
</Grid>