读书人

WPF TextBox验证解决方案

发布时间: 2012-05-13 16:39:43 作者: rapoo

WPF TextBox验证
这个是微软给的XAML 代码。
1.TetxtBox

XML code
<Style x:Key="textBoxInError" TargetType="{x:Type TextBox}">  <Style.Triggers>    <Trigger Property="Validation.HasError" Value="true">      <Setter Property="ToolTip"        Value="{Binding RelativeSource={x:Static RelativeSource.Self},                        Path=(Validation.Errors)[0].ErrorContent}"/>    </Trigger>  </Style.Triggers></Style>

2. TextBox模板
XML code
<ControlTemplate x:Key="validationTemplate">  <DockPanel>    <TextBlock Foreground="Red" FontSize="20">!</TextBlock>    <AdornedElementPlaceholder/>  </DockPanel></ControlTemplate>

3.TetxtBox使用模板
XML code
<TextBox Name="textBox1" Width="50" FontSize="15"         Validation.ErrorTemplate="{StaticResource validationTemplate}"         Style="{StaticResource textBoxInError}"         Grid.Row="1" Grid.Column="1" Margin="2">  <TextBox.Text>    <Binding Path="Age" Source="{StaticResource ods}"             UpdateSourceTrigger="PropertyChanged" >      <Binding.ValidationRules>        <c:AgeRangeRule Min="21" Max="130"/>      </Binding.ValidationRules>    </Binding>  </TextBox.Text></TextBox


我想将它转换为后台代码时遇到的问题
1.
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
这句不知道怎么转换为后台代码

2.ControlTemplate 我已经在后台写好了 但不知道怎么赋值给TextBox 的 Validation.ErrorTemplate
因为在后台找不到 TextBox 的Validation.ErrorTemplate 属性,但是XAML 界面是能这样写。

[解决办法]
是不是要处理特殊符号而已。你用代码操作这些XAML代码内容吗。
[解决办法]
什么叫把XAML转成后台代码?什么意思?

XAML只是个布局文件而已,后台代码才是源码啊
[解决办法]
http://nonocast.cn/?s=%E9%80%9A%E8%AE%AF%E5%BD%95
[解决办法]
探讨
设置Style 和 ControlTemplate 可以
不写任何XAML代码,你这就异想天开了

读书人网 >C#

热点推荐