Я впервые использую элемент Validationprovider. У меня был ограниченный успех, пытаясь имитировать функциональность, которую я видел в примере решения ValidationQuickStart, которое поставляется с установкой Ent Lib.
Хотя мне удалось получить значки формы errorprovider на основе проверок бизнес-объектов, которые украшают свойство BO атрибутом проверки, например:
<NotNullValidator(MessageTemplate:="Gender must be specified.", RuleSet:="MyRule", Tag:="Gender")> _
Public Shadows Property Gender() As String
Get
Return MyBase.Gender
End Get
Set(ByVal value As String)
MyBase.Gender = value
End Set
End Property
Однако, если бы я хотел внести правку в метод «SelfValidation», как бы привязать Результат к элементу управления формы?
(In Self Validation)
If Me.Attornet s Nothing Then
Dim result As New ValidationResult("Attorney selection is required", Me, Nothing, Nothing, Nothing)
results.AddResult(result)
End If
Или я должен создать собственный ** CUSTOM VALIDATOR? », А затем использовать его тип для украшения свойства бизнес-объекта?
Изменить:
Если элемент управления ValidationProvider не предназначен для перекрестной проверки, как этот:
если пользователь выбирает вариант «Да» в группе переключателей, соответствующей свойству Business Option Customer.DoYouSmokeCrack As Boolean, то элемент управления txtHowMuch должен быть отмечен значком ErrorProvider, указывающим, что это поле является условным обязательным.
Сейчас я делаю это в блоке Self Validation, и когда я добавляю объект ValidationResult в коллекцию, я устанавливаю для свойства Key значение «Explanation», чтобы графический интерфейс мог использовать его для ручного сопоставления с проблемным экраном. контроль.
Есть ли более стандартный / лучший способ сделать это?