У меня есть форма данных, которая привязана к объекту, свойства которого украшены System.ObjectModel.DataAnnotation
атрибутами для проверки.
Проблема, с которой я сталкиваюсь, заключается в том, что некоторые свойства этого класса нужны только условно и делаютне нужно подтверждать.Например, когда администратор приложения решает отредактировать пользователя, он или она может ввести пароль / подтверждение пароля / вопрос о пароле / ответ на пароль.Или он / она может полностью пропустить эти свойства.
Поэтому, если администратор решит ввести любое из этих 4 полей, они все должны присутствовать, и должны быть применены правила проверки для всех этих полей.Однако, если администратор хочет изменить только FirstName, LastName, Email или любые другие произвольные свойства - поля, связанные с паролем, проверять не нужно.
Есть ли способ «исключить» их из проверки?process?
это пример объекта, с которым я работаю:
public class RegistrationData
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string PasswordConfirm { get; set; }
public string PasswordQuestion { get; set; }
public string PasswordAnswer { get; set; }
}
У меня есть DataForm с именем registrationForm в Xaml, и я получаю ошибку в следующем коде:
private void RegistrationButton_Click(object sender, RoutedEventArgs e)
{
if( this.registerForm.ValidateItem() )
{
//Does not pass validaton if the password properties are not filled in.
}
}
Любые идеи о том, как это исправить?
Я думал об использовании двух DataForms ... и разделить пользовательский объект на две, но это включает в себя много кода ...