Пример #1
0
        protected ViewModelBase(PropertyNameValidationType propertyNameValidation)
        {
            var shallThrowExceptions = (propertyNameValidation & PropertyNameValidationType.ThrowExceptions) == PropertyNameValidationType.ThrowExceptions;

            if ((propertyNameValidation & PropertyNameValidationType.UseReflection) == 0)
            {
                _reflectedPropertyNames = new HashSet <string>();
                IsValidPropertyName     = _ => true;
            }
            else
            {
                BindingFlags bf = (propertyNameValidation & PropertyNameValidationType.AcceptNonPublic) == PropertyNameValidationType.AcceptNonPublic
                    ? BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public
                    : BindingFlags.Instance | BindingFlags.Public;
                var props = GetType().GetProperties(bf);
                _reflectedPropertyNames = props.Select(p => p.Name).Distinct().ToHashSet();
                var acceptEmpty = (propertyNameValidation & PropertyNameValidationType.AcceptEmptyName) == PropertyNameValidationType.AcceptEmptyName;

                IsValidPropertyName = name => validIfNameReflected(name, shallThrowExceptions, acceptEmpty);
            }
        }
 protected ErrorNotifyingViewModelBase(PropertyNameValidationType propertyNameValidation) : base(propertyNameValidation)
 {
 }