我有一个用户控件,其中包含一个边框。我可以通过绑定到两个文本框来编辑用户控件宽度和边框宽度。我需要在代码中创建绑定时包含验证,以便边框宽度不能高于用户控件宽度。
答案 0 :(得分:0)
使用依赖属性可以实现此目的。在Border Width上创建一个依赖项属性,当它将被更改为此属性时,它将被调用,你可以检查宽度是否大于usercontrol width,如果它是true,你可以抛出验证。
答案 1 :(得分: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);
}
}