Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.ComponentModel;
- using System.ComponentModel.DataAnnotations;
- namespace TM
- {
- public class ValidatedClassExample : Screen, INotifyDataErrorInfo
- {
- public event PropertyChangedEventHandler PropertyChanged;
- public event EventHandler<DataErrorsChangedEventArgs> ErrorsChanged;
- private ValidatorComponent _validatorComponent;
- protected ValidatingScreen()
- {
- _validatorComponent = new ValidatorComponent(this);
- _validatorComponent.ErrorsChanged += PropagateErrorsChanged;
- }
- private void PropagateErrorsChanged(object sender, DataErrorsChangedEventArgs e)
- {
- ErrorsChanged?.Invoke(this, e);
- }
- public virtual bool HasErrors => _validatorComponent.HasErrors;
- public virtual System.Collections.IEnumerable GetErrors(string propertyName) => _validatorComponent.GetErrors(propertyName);
- private void NotifyOfPropertyChange(string propertyName)
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- }
- #region some validated properties
- [Required]
- public string MyString
- {
- get { return _myString; }
- set
- {
- if (value == _myString)
- return;
- _myString = value;
- NotifyOfPropertyChange(nameof(MyString));
- }
- }
- private string _myString;
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement