Làm thế nào để tắt/bật nút khi thực hiện xác thực bằng cách sử dụng IDataErrorInfo
?Bật Tắt nút lưu trong khi Xác thực bằng IDataErrorInfo
Tôi đang sử dụng MVVM
bằng GalaSoft Light Framework. Trong lớp Model của tôi, tôi đã thực hiện IDataErrorInfo
để hiển thị các thông báo lỗi.
public string this[string columnName]
{
get
{
Result = null;
if (columnName == "FirstName")
{
if (String.IsNullOrEmpty(FirstName))
{
Result = "Please enter first name";
}
}
else if (columnName == "LastName")
{
if (String.IsNullOrEmpty(LastName))
{
Result = "Please enter last name";
}
}
else if (columnName == "Address")
{
if (String.IsNullOrEmpty(Address))
{
Result = "Please enter Address";
}
}
else if (columnName == "City")
{
if (String.IsNullOrEmpty(City))
{
Result = "Please enter city";
}
}
else if (columnName == "State")
{
if (State == "Select")
{
Result = "Please select state";
}
}
else if (columnName == "Zip")
{
if (String.IsNullOrEmpty(Zip))
{
Result = "Please enter zip";
}
else if (Zip.Length < 6)
{
Result = "Zip's length has to be at least 6 digits!";
}
else
{
bool zipNumber = Regex.IsMatch(Zip, @"^[0-9]*$");
if (zipNumber == false)
{
Result = "Please enter only digits in zip";
}
}
}
else if (columnName == "IsValid")
{
Result = true.ToString();
}
return Result;
}
}
Ảnh chụp màn hình: http://i.stack.imgur.com/kwEI8.jpg
Làm thế nào để tắt/bật nút lưu. Vui lòng đề nghị?
Cảm ơn
đó không phải là một cách tiếp cận tốt để đặt logic xác nhận trong Mô hình của bạn, bởi vì logic xác thực có thể thay đổi trong kịch bản khác nhau. –
Để đơn giản, nó có thể chỉ là 'công bool IsValid => ValidatedProperties.All (p => GetValidationError (p) == null);'. – dee