0
我有一个用户控件,其中包含一个边框。我能够编辑用户控制宽度和边框宽度绑定到两个文本框。我需要在代码中创建绑定时包含验证,以便边框宽度不能高于用户控件宽度。WPF验证两个属性
我有一个用户控件,其中包含一个边框。我能够编辑用户控制宽度和边框宽度绑定到两个文本框。我需要在代码中创建绑定时包含验证,以便边框宽度不能高于用户控件宽度。WPF验证两个属性
我解决了我的问题,这很容易,我想删除我的问题比回应更好,但也许有人会发现这有用。
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);
}
}
使用依赖项属性可以实现此目的。在边框宽度上创建一个依赖项属性,并且当这个属性发生变化时,它将被调用,并且你可以检查宽度是否大于用户控件的宽度,如果它是真的,你可以抛出验证。
这是非常模糊的,它不能真正帮助我...我应该如何“抛出”验证? – morsanu 2010-05-03 07:23:20