예제 #1
0
        internal void ValidatePropertyChange(TProperty newValue, NotifyDataErrorInfoBehavior behavior)
        {
            this.viewModel.ErrorsChanged += HandleViewModelErrorsChanged;

            SetPropertyValueOnViewModel(newValue);

            var messageError = string.Format("When setting value to {0} ", newValue);

            Assert.AreEqual(IsSet(NotifyDataErrorInfoBehavior.FiresErrorsChanged, behavior), this.errorsChangedNotified, messageError + "fired ErrorsChanged event");
            Assert.AreEqual(IsSet(NotifyDataErrorInfoBehavior.HasErrors, behavior), this.viewModel.HasErrors, messageError + "HasErrors");
            Assert.AreEqual(
                IsSet(NotifyDataErrorInfoBehavior.HasErrorsForProperty, behavior),
                (this.viewModel.GetErrors(this.propertyName) ?? new object[0]).GetEnumerator().MoveNext(),
                messageError + "HasErrorsForProperty");

            this.viewModel.ErrorsChanged -= HandleViewModelErrorsChanged;
            this.errorsChangedNotified    = false;
        }
예제 #2
0
 private static bool IsSet(NotifyDataErrorInfoBehavior behavior, NotifyDataErrorInfoBehavior behaviors)
 {
     return((behaviors & behavior) == behavior);
 }