我有几个带有自定义验证器的文本框:(
我不介意将"错误的"数据发送回对象(属性是字符串),如果出现错误,我只需要阻止按钮的功能,所以如果对于那种验证,绑定不是正确的地方请告诉我.我只是喜欢我可以使用的Validation.ErrorTemplate支持)
<ControlTemplate x:Key="validator" >
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Right" Foreground="Red" FontSize="12pt">!</TextBlock>
<Border BorderBrush="Red" BorderThickness="1.0">
<AdornedElementPlaceholder />
</Border>
</DockPanel>
</ControlTemplate>
<TextBox Height="23" Width="150" TextWrapping="Wrap"
Validation.ErrorTemplate="{StaticResource validator}">
<TextBox.Text>
<Binding Path="StringProperty" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<local:NumbersOnly/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud)
如果出现任何验证错误,如何禁用特定按钮?
<Button Content="DO Work" Height="57" HorizontalAlignment="Left" Name="button1" VerticalAlignment="Top" Width="234" Click="button1_Click" />
Run Code Online (Sandbox Code Playgroud) 我想在文本框上使用ValidationRules(及其UI效果),而不实际将任何内容绑定到文本框.
我想使用文本框进行一些输入,这些输入没有绑定到任何东西,但需要在使用ValidationRules丢失焦点后验证输入.
可以吗?
<TextBox.Text>
<Binding Path="" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<local:IntegersOnlyValidator/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
Run Code Online (Sandbox Code Playgroud) 如何将datatemplate中的文本框文本属性绑定到ContentControl内容属性?
(没有通过ElementName绑定)
这是我的代码(不起作用):
<Window.Resources>
<DataTemplate x:Key="Temp">
<TextBox TextWrapping="Wrap" Text="{TemplateBinding Content}" Height="20" Width="Auto"/>
</DataTemplate>
</Window.Resources>
<Grid>
<ContentControl ContentTemplate="{DynamicResource Temp}" Content="1"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)