.NET GUI

.NET Community rund um alle Graphical User Interface (GUI) Themen.
Willkommen bei .NET GUI. Anmeldung | Registrieren | Hilfe | Impressum | Forumsregeln
in Suchen

ListView - Daten werden nicht aktualisiert

Letzter Beitrag 09-23-2008 11:04 von Norbert Eder. 5 Antworten.
Seite 1 von 1 (6 Treffer)
Beiträge sortieren: Zurück Weiter
  • 09-22-2008 10:02

    • paul30k
    • Top 10 Mitwirkender
    • Registriert am 08-15-2008
    • Beiträge 29
    • Punkte 460

    ListView - Daten werden nicht aktualisiert

    Hallo,

    ich habe es unter Mühen geschafft einen Inhalt im ListView dazustellen. Allerdings gelingt es mir nicht den Inhalt zu aktualisieren. Meine Datenquelle ist ein ArrayList. Nun dachte ich, daß der Inhalt des ListViews aktualisiert wird, sobald sich der Inhalt des ArrayLists ändern. Falsch gedacht. Ich habe keine Idee wo ich suchen muß. Kann mir vielleicht jemand einen kleinen Tipp geben was ich falsch mache?

    Gruß
    Paul

    Auszug aus dem XAML-Teil:

    <ListView Name="listViewMeetingAndReview" Grid.Row="2" Grid.ColumnSpan="2" Height="Auto" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="Auto" MinHeight="50" Margin="8,4,6,0">
        <ListView.View>
            <GridView>
                <GridViewColumn Width="140" DisplayMemberBinding="{Binding Path=Name}" Header="Name" />
                <GridViewColumn Width="90" DisplayMemberBinding="{Binding Path=Department}" Header="Abteilung" />
            </GridView>
        </ListView.View>
    </ListView>
    

     

    Der c#-Teil

    
    
    /// <summary>
    /// Object des ArrayList - notwendig für Data Binding an ListView
    /// </summary>
    public class ListViewDataMeetingAndReviewClass
    {
        string name;
        string department;
        string email;
        public string Name { get { return name; } set { name = value; } }
        public string Department { get { return department; } set { department = value; } }
        public string Email { get { return email; } set { email = value; } }
    }
    
    ArrayList listViewDataMeetingAndReview = new ArrayList();
    
    
    =================== hier die Zuweisung der Daten ====================
    
    
    // die Daten des ArrayList kommen aus einer Datenbank
    try
    {
        listViewDataMeetingAndReview.Clear();
        listViewMeetingAndReview.Items.Clear();
    }
    catch
    {
    
    }
    
    
    while (odbcDataReader.Read())
    {
        ListViewDataMeetingAndReviewClass listViewDataMeetingAndReview1 = new ListViewDataMeetingAndReviewClass();
        string strFullname = odbcDataReader.GetString(0) + ", " + odbcDataReader.GetString(1);
    
        listViewDataMeetingAndReview1.Name = strFullname;
        listViewDataMeetingAndReview1.Department = odbcDataReader.GetString(2);
        listViewDataMeetingAndReview1.Email = odbcDataReader.GetString(3);
        listViewDataMeetingAndReview.Add(listViewDataMeetingAndReview1);
    }
    
    listViewMeetingAndReview.ItemsSource = listViewDataMeetingAndReview;
    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 09-22-2008 20:20 Antwort zu

    • Norbert Eder
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 04-09-2008
    • Graz / Austria
    • Beiträge 450
    • Punkte 6.769
    • ForumsAdministrator

    AW: ListView - Daten werden nicht aktualisiert

    Mit einer ArrayList kann das nicht funktionieren. Damit ein automatisches Aktualisieren stattfinden kann, brauchst du eine Collection, die - einfach gesagt - Bescheid gibt, wenn sich an den Objekten oder der Objektauflistung etwas ändert. Dazu sind zwei Dinge notwendig:

    • Deine Objekte implementieren INotifyPropertyChanged
    • Du verwendest statt einer ArrayList eine ObservableCollection

    Zweiteres kannst du dir im Artikel Listview im Listview als Beispiel ansehen. In diesem Beispiel geht es zwar schon etwas tiefer als du es brauchst, aber ohne zweite Ebene ist es genau das was du brauchst. INotifyPropertyChanged als auch ein gesamtes Beispiel findest du in dieser Demoanwendung.
    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 09-23-2008 7:15 Antwort zu

    • paul30k
    • Top 10 Mitwirkender
    • Registriert am 08-15-2008
    • Beiträge 29
    • Punkte 460

    AW: ListView - Daten werden nicht aktualisiert

    Danke Norbert für Deine Hilfe.

    Ich habe gehofft, daß es auch einfacher geht. Wenn ich das mit dem ListView von .net-Forms vergleiche ist das schon wahnsinnig kompliziert geworden (natürlich auch leistungsfähiger).

    Eigentlich reicht es mir auch, daß ich das ListView jedesmal komplett neu befülle. Also erst evtl. Inhalt des Arrays löschen, Array neu aufbauen und ListView zuweisen. Das funktioniert das 1. Mal mit meinem geposteten Code aber beim nächsten Mal passt sich der Inhalt nicht an. Es muß doch möglich sein das ListView wieder neu zu initialisieren?!

    Gruß
    Paul

    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 09-23-2008 9:28 Antwort zu

    • Norbert Eder
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 04-09-2008
    • Graz / Austria
    • Beiträge 450
    • Punkte 6.769
    • ForumsAdministrator

    AW: ListView - Daten werden nicht aktualisiert

    ItemsSource auf null setzen und dann deine ArrayList mit den aktualisierten Daten zuweisen. Ich würde dir aber dennoch vorschlagen, zumindest auf die ObservableCollection zurück zu greifen.
    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 09-23-2008 9:44 Antwort zu

    • paul30k
    • Top 10 Mitwirkender
    • Registriert am 08-15-2008
    • Beiträge 29
    • Punkte 460

    AW: ListView - Daten werden nicht aktualisiert

    Answer

    ItemsSource auf null setzen war der entscheidene Tipp. Klasse. Vielen Dank. Die Umsetzung mit ObservableCollection werde ich mir auf jeden Fall trotzdem anschauen. Momentan ist das doch ziemlich viel neuer Stoff den ich mir da mit WPF eingehandelt habe. Muß noch sehr, sehr, sehr viel lernen. 

    Gruß
    Paul

    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 09-23-2008 11:04 Antwort zu

    • Norbert Eder
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 04-09-2008
    • Graz / Austria
    • Beiträge 450
    • Punkte 6.769
    • ForumsAdministrator

    AW: ListView - Daten werden nicht aktualisiert

    • Beitragspunkte: 5
    • IP-Adresse ist Registriert
Seite 1 von 1 (6 Treffer)
Powered by Community Server (Commercial Edition)    Hosting powered by 69° media solutions