public void RejectChanges()
		{
			_current = _original;

			if (_current != null)
				_current.RejectChanges();
		}
		public void AcceptChanges()
		{
			_original = _current;

			if (_current != null)
				_current.AcceptChanges();
		}
		public EditableObjectHolder(EditableObject obj)
		{
			_original = obj;
			_current  = obj;

			if (_current != null)
				_current.PropertyChanged += _current_PropertyChanged;
		}
        public void RejectChanges()
        {
            _current = _original;

            if (_current != null)
            {
                _current.RejectChanges();
            }
        }
        public void AcceptChanges()
        {
            _original = _current;

            if (_current != null)
            {
                _current.AcceptChanges();
            }
        }
        void _current_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            EditableObject obj = _parent as EditableObject;

            if (obj != null)
            {
                obj.OnPropertyChanged(_propertyInfo.Name + "." + e.PropertyName);
            }
        }
        public EditableObjectHolder(EditableObject obj)
        {
            _original = obj;
            _current  = obj;

            if (_current != null)
            {
                _current.PropertyChanged += _current_PropertyChanged;
            }
        }