2010-05-03 102 views
0

我有一个用户控件,其中包含一个边框。我能够编辑用户控制宽度和边框宽度绑定到两个文本框。我需要在代码中创建绑定时包含验证,以便边框宽度不能高于用户控件宽度。WPF验证两个属性

回答

0

我解决了我的问题,这很容易,我想删除我的问题比回应更好,但也许有人会发现这有用。

class MyUserControlValidationRule : ValidationRule 
{ 
    private MyUserControl _control; 
    public MyUserControlValidationRule(MyUserControl control) 
    { 
     _control = control; 
    } 

    public override ValidationResult Validate(object value, CultureInfo cultureInfo) 
    { 
     int parameter = 0; 
     try 
     { 
      if (((string)value).Length > 0) 
      { 
       parameter = int.Parse((String)value); 
      } 
     } 
     catch (Exception e) 
     { 
      return new ValidationResult(false, "Illegal characters or " + e.Message); 
     } 

     if (parameter >= _control.Width) 
     { 
      return new ValidationResult(false, "Border width is bigger that the control width."); 
     } 
     return new ValidationResult(true, null); 
    } 
} 
0

使用依赖项属性可以实现此目的。在边框宽度上创建一个依赖项属性,并且当这个属性发生变化时,它将被调用,并且你可以检查宽度是否大于用户控件的宽度,如果它是真的,你可以抛出验证。

+0

这是非常模糊的,它不能真正帮助我...我应该如何“抛出”验证? – morsanu 2010-05-03 07:23:20