Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
INotifyPropertyChanged cause stack overflow
Message
From
26/01/2008 04:41:22
 
 
To
25/01/2008 17:42:58
General information
Forum:
ASP.NET
Category:
Common Language Runtime
Environment versions
Environment:
C# 3.0
OS:
Windows XP SP2
Network:
Windows 2000 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01285680
Message ID:
01285722
Views:
17
Hi,

Presumably the overflow only happens when you have something wired up to the PropertyChanged event? Are you sure that isn't setting SelectedValue somewhere?

Regards,
Viv

>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
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform