PropertyChange.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / Model / PropertyChange.cs / 1305376 / PropertyChange.cs

                            //---------------------------------------------------------------- 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//---------------------------------------------------------------

namespace System.Activities.Presentation.Model 
{
    using System; 
    using System.Collections.Generic; 
    using System.Text;
    using System.Globalization; 
    using System.Runtime;

    class PropertyChange : ModelChange
    { 
        public ModelItem Owner { get; set; }
 
        public string PropertyName { get; set; } 

        public ModelItem OldValue { get; set; } 

        public ModelItem NewValue { get; set; }

        public ModelTreeManager ModelTreeManager { get; set; } 

        public override string Description 
        { 
            get
            { 
                return string.Format(CultureInfo.InvariantCulture, "{0} - {1}", SR.PropertyChangeEditingScopeDescription, this.PropertyName);
            }
        }
 
        public override bool Apply()
        { 
            Fx.Assert(this.ModelTreeManager != null, "Modeltreemanager cannot be null"); 
            Fx.Assert(this.Owner != null, "Owner modelitem cannot be null");
            Fx.Assert(!String.IsNullOrEmpty(this.PropertyName), " property name cannot be null or emptry"); 
            ModelPropertyImpl dataModelProperty = (ModelPropertyImpl)this.Owner.Properties[this.PropertyName];
            ModelItem oldValue = dataModelProperty.Value;
            if ((oldValue == null && this.NewValue == null) ||
                (oldValue != null && this.NewValue != null && oldValue.GetCurrentValue().Equals(this.NewValue.GetCurrentValue()))) 
            {
                return false; 
            } 
            dataModelProperty.SetValueCore(this.NewValue);
            this.ModelTreeManager.NotifyPropertyChange(dataModelProperty); 
            return true;
        }

        public override Change GetInverse() 
        {
            return new PropertyChange() 
                { 
                    ModelTreeManager = this.ModelTreeManager,
                    Owner = this.Owner, 
                    OldValue = this.NewValue,
                    NewValue = this.OldValue,
                    PropertyName = this.PropertyName
                }; 
        }
    } 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK