Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
INotifyPropertyChanged cause stack overflow
Message
De
26/01/2008 04:41:22
 
 
À
25/01/2008 17:42:58
Information générale
Forum:
ASP.NET
Catégorie:
Common Language Runtime
Versions des environnements
Environment:
C# 3.0
OS:
Windows XP SP2
Network:
Windows 2000 Server
Database:
MS SQL Server
Divers
Thread ID:
01285680
Message ID:
01285722
Vues:
18
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
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform