Hi there,
i have been trying to implement a custom validation rule. It doesn't seem to be working though I am not getting any errors. I figured out that I needed this line.
Yes - I know I spelled Validation wrong when I created the project.Code:xmlns:local="clr-namespace:validatiinTest"
Everything compiles but nothing happens when I change the value in the textbox that has the validation rule... I mean in the code, I dropped a breakpoint inside the validate method and it never gets called - what am I missing? Below is the code for the whole thing... As far as the book that I have is concerned that is everything I should need. Of course I am not doing anything or checking it but still Validate() should get called.
Code:<Window x:Class="validatiinTest.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:validatiinTest" Title="Window1" Height="300" Width="300" Background="Aqua"> <Grid> <TextBox Height="21" Margin="12,62,0,0" Name="TextBox1" VerticalAlignment="Top" HorizontalAlignment="Left" Width="120" > <TextBox.Text> <Binding Path="xxxx" UpdateSourceTrigger="PropertyChanged"> <Binding.ValidationRules> <local:CheckForInteger /> </Binding.ValidationRules> </Binding> </TextBox.Text> </TextBox> <TextBox Height="23" Margin="77,0,81,29" Name="textBox2" VerticalAlignment="Bottom" /> </Grid> </Window>Thanks!Code:namespace validatiinTest { /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 : Window { public Window1() { InitializeComponent(); } } public class CheckForInteger : ValidationRule { public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureinfo) { int theNum = 0; if (!int.TryParse(value.ToString(), out theNum)) return new ValidationResult(false, "Not a number"); return new ValidationResult(true, "No Error"); } } }




Reply With Quote