首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WPF TextBox验证解决方案

2012-05-13 
WPF TextBox验证这个是微软给的XAML 代码。1.TetxtBoxXML codeStyle x:KeytextBoxInError TargetType

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代码,你这就异想天开了

热点排行