Я использую элемент управления Validationprovider в первый раз.Я имел ограниченный успех, пытаясь имитировать функциональность, которую я видел в примере решения ValidationQuickStart, который поставляется с установкой Ent Lib.
Хотя мне удалось заставить значки форм отображать ошибки на основе проверок бизнес-объектовкоторые украшают свойство 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», как бы я связал Result с элементом управления формы?
(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 не предназначен для перекрестной проверки, например, такой:
, если пользователь выбирает параметр «Да» в группе переключателей, соответствующий свойству бизнес-параметра Customer.DoYouSmokeCrack As Boolean, тоэлемент управления txtHowMuch должен быть помечен значком ErrorProvider, указывающим, что это поле является обязательным условием.
Теперь я делаю это в блоке Self Validation и, когда я добавляю объект ValidationResult вдля коллекции я установил для свойства Key значение «Explanation», чтобы графический пользовательский интерфейс мог использовать его для ручного сопоставления с нарушающим управление экраном.
Существует ли более стандартный / более эффективный способ сделать это?