Exemplo n.º 1
0
        public override void NotifyPropertyChanged(ObservableObject observableObject)
        {
            Debug.Assert(isValueChanged);

            try
            {
                observableObject.NotifyPropertyChange(propertyAccessor.Name);
            }
            catch (Exception e)
            {
                EventSource.Log.UnableToRaisePropertyChangeNotification(propertyAccessor.ObjectTypeName, propertyAccessor.Name, e.ToString());
            }
            finally
            {
                isValueChanged = false;
            }
        }
        public override void NotifyPropertyChanged(ObservableObject observableObject)
        {
            Debug.Assert(isValueChanged || isIsExecutingChanged);

            if (isValueChanged)
            {
                try
                {
                    observableObject.NotifyPropertyChange(propertyAccessor.Name);
                }
                catch (Exception e)
                {
                    EventSource.Log.UnableToRaisePropertyChangeNotification(propertyAccessor.ObjectTypeName, propertyAccessor.Name, e.ToString());
                }
                finally
                {
                    isValueChanged = false;
                }
            }

            if (isIsExecutingChanged)
            {
                Debug.Assert(currentValue != null);

                try
                {
                    currentValue.NotifyCanExecuteChanged();
                }
                catch (Exception e)
                {
                    EventSource.Log.UnableToRaiseCommandPropertyChangeNotification(
                        propertyAccessor.ObjectTypeName,
                        propertyAccessor.Name,
                        e.ToString());
                }
                finally
                {
                    isIsExecutingChanged = false;
                }
            }
        }