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
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