Laden...

WPF DataGrid oder Combobox: ItemsSource aktualisieren ?

Erstellt von Biplane vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.333 Views
B
Biplane Themenstarter:in
20 Beiträge seit 2008
vor 14 Jahren
WPF DataGrid oder Combobox: ItemsSource aktualisieren ?

Moinmoin,

beim DataGrid verwende ich Databinding zum füllen des Listenbereichs...


Binding bindingItemSource = new Binding(AdressListe);
bindingItemSource.NotifyOnSourceUpdated = true;
bindingItemSource.NotifyOnTargetUpdated = true;
ucGrid.SetBinding(DataGrid.ItemsSourceProperty , bindingItemSource);

Das funktioniert auch bei der erstmaligen Anzeige. Damit bei Änderungen in der "AdressListe" (z.B. Liste neu mit anderem Filter aus DB laden) wird das Grid nicht automatisch aktualisiert. Nur wenn Manuell "ucGrid.Items.Refresh();" aufgerufen wird, funkioniert es.

Eigentlich sollte es doch über die Implementierung von "INotifyPropertyChanged" funktionieren oder nicht ?


public class Testklasse : INotifyPropertyChanged
{
	public Testklasse()
	{
        List<Adresse> _AdressListe = new List<Adresse>();
        public Adresse AdressListe
        {
            get
            {
                return _AdressListe;
            }
            set
            {
                _AdressListe = value;
                OnPropertyChanged("AdressListe");
            }
        }

        public void ListeA()
        {
            List<Adresse> listeA = new List<Adresse>();
            listeA.Add(adresse1);
            listeA.Add(adresse2);
            AdressListe = listeA;
        }

        public void ListeB()
        {
            List<Adresse> listeB = new List<Adresse>();
            listeB.Add(adresse5);
            listeB.Add(adresse6);
            listeB.Add(adresse7);
            AdressListe = listeB;
        }

        #region INotifyPropertyChanged Members
        public event PropertyChangedEventHandler PropertyChanged;
        protected void OnPropertyChanged(string name)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(name));
            }
        }
        #endregion
}


Gruß
Norbert

2.223 Beiträge seit 2005
vor 14 Jahren

Hallo Biplane,

erreicht der Code beim Debuggen denn die Methode OnPropertyChanged?

und könntest Du uns mal bitte den Code zeigen, in dem mit einem anderen Filter geladen wird?

Herzliche Grüße
Lars