Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
INotifyPropertyChanged cause stack overflow
Message
From
25/01/2008 17:42:58
 
 
To
All
General information
Forum:
ASP.NET
Category:
Common Language Runtime
Title:
INotifyPropertyChanged cause stack overflow
Environment versions
Environment:
C# 3.0
OS:
Windows XP SP2
Network:
Windows 2000 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01285680
Message ID:
01285680
Views:
124
Hi,
I implemented INotifyPropertyChanged interace to my control and it caused stack overflow. I posted partial code as below.

Any ideas? Please advice
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public object SelectedValue
        {
            get
            {
                return EditValue;
            }
            set
            {
                object lOldValue = EditValue;

                if (CheckPropertyChanged("SelectedValue", ref lOldValue, ref value))
                {
                    EditValue = value; //_Items.IndexOfValue(value);
                    SelectedValueChanged();
                }
               
                //SelectedValueChanged();
            }
        }

        #region INotifyPropertyChanged Members

        public event PropertyChangedEventHandler PropertyChanged;

        protected bool CheckPropertyChanged<T>(string propertyName, ref T oldValue, ref T newValue)
        {
            if (oldValue == null && newValue == null)
            {
                return false;
            }

            if ((oldValue == null && newValue != null) || !oldValue.Equals((T)newValue))
            {
                oldValue = newValue;

                //FirePropertyChanged(propertyName);

                return true;
            }

            return false;
        }

        protected void FirePropertyChanged(string propertyName)
        {
            if (this.PropertyChanged != null)
            {
                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        protected void SelectedValueChanged()
        {
            FirePropertyChanged("SelectedValue");
        }

        #endregion
Thank you
I am not the most powerful man in this world.
I am not the worst man in this world either.
I just as same as all of you.
I still need to learn from my mistakes...
Next
Reply
Map
View

Click here to load this message in the networking platform