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