我已經創建了一個模型,有幾個自定義驗證。這些自定義驗證我已註釋屬性由以下代碼CustomValidation註釋事件提出問題MVVM Silverlight 5
[CustomValidation(typeof(ItemmasterModel), "ValueTextMaxLenghtValidate")]
public decimal Valuetextmaxlength
{
get
{
return _Valuetextmaxlength;
}
set
{
ValidateProperty("Valuetextmaxlength",value);
_Valuetextmaxlength = value;
RaisePropertyChanged(() => Valuetextmaxlength);
}
}
public static ValidationResult ValueTextMaxLenghtValidate(object obj, ValidationContext context)
{
var itmmstr = (ItemmasterModel)context.ObjectInstance;
if (itmmstr.SelectedValuetypeDd != null)
{
string vtype = itmmstr.SelectedValuetypeDd.Key.ToString();
if (vtype.Equals("C"))
{
if (itmmstr.SelectedItemValueCodeTypesDd != null)
{
string vcode = itmmstr.SelectedItemValueCodeTypesDd.Key.ToString();
if (vcode.Equals("T"))
{
if (itmmstr.Valuetextmaxlength == null || itmmstr.Valuetextmaxlength == 0)
{
return new ValidationResult("Value Max Length is not Entered",
new List<string> { "Valuetextmaxlength" });
}
}
}
}
else if (vtype.Equals("T"))
{
if (itmmstr.Valuetextmaxlength == null || itmmstr.Valuetextmaxlength == 0)
{
return new ValidationResult("Value Max Length is not Entered",
new List<string> { "Valuetextmaxlength" });
}
}
}
return ValidationResult.Success;
}
現在這個驗證代碼依賴於其他屬性。 scenerio當用戶從下拉菜單中選擇一個值時,它會自動選擇1個複選框,用戶也應該在texbox中輸入值。
問題:
驗證正在工作。複選框在第一時間被選中,然後它也會出現錯誤彈出窗口。 直到用戶不會更改此複選框或texbox它只有錯誤。 1次它說錯誤的偶數值已被輸入。下一次它甚至用戶沒有輸入任何內容,但在最終的完整對象驗證過程中再次出現錯誤。
爲什麼這種模糊性正在發生。如何解決這個問題。 需要更多的代碼讓我知道。我會發布。代碼是在Silverlight 5中,MVVM Light