vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
DataGrid in Silverlight aktualisiert sich nicht. 
Autor: chrixko
Datum: 08.06.09 18:22

Hallo,

ich habe in meiner Silverlight-Applikation ein DataGrid welches seine Daten aus einer ObservableCollection bezieht. Jedoch wenn ich daten in der Collection ändere, verändert sich nichts an dem DataGrid. Selbst wenn ich das hier versuche:

DataGrid.ItemSource = Nothing
DataGrid.ItemSource = PersonList
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGrid in Silverlight aktualisiert sich nicht. 
Autor: ModeratorFZelle (Moderator)
Datum: 08.06.09 18:31

Und die Objekte in der ObservableCollection haben auch INotifyPropertyChanged implementiert?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGrid in Silverlight aktualisiert sich nicht. 
Autor: chrixko
Datum: 08.06.09 18:38

Laut MSDN ist diese implementiert. Deshalb habe ich auch die ObservableCollection anstatt einer List(Of T) genommen.


//Edit:
Komischerweise funktioniert es wenn ich, direkt im Click-Event, mal testweise einfach fest etwas in die Collection einfüge.

Beitrag wurde zuletzt am 08.06.09 um 18:47:47 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGrid in Silverlight aktualisiert sich nicht. 
Autor: ModeratorFZelle (Moderator)
Datum: 08.06.09 19:20

?
Du musst in deinen Businessobjekten INotifyPropertyChanged implementieren, damit
die ObservableCollection das abfangen kann.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGrid in Silverlight aktualisiert sich nicht. 
Autor: chrixko
Datum: 08.06.09 19:29

Ich verstehe gerade nicht genau was du meinst?
Es funktioniert ja wenn ich z.B. direkt von meiner Hauptseite im OnClick-Event etwas hinzufüge:
dim PersonList as New ObservableCollection(Of Person)
 
Private Sub AddPerson_Click(ByVal sender As System.Object, ByVal e As _
  System.Windows.RoutedEventArgs)
 
  PersonList.Add(New Person() With {.FirstName = "Vorname", .LastName = _
    "Nachname", .Age = "23", .StartDate = New DateTime(2007, 8, 1), _
    .IsFullEmployee = False})
 
End Sub
Dabei wird das DataGrid auch automatisch aktualisiert. Jedoch wenn ich diese Funktion von einem Popup-Fenster ausrufe funktioniert dies nicht :
  Public Sub AddPersonFromPopUp(ByVal strFirstName As String, ByVal strLastName _
    As String, ByVal intAge As Integer, ByVal bolIsFullEmployee As Boolean)
 
    PersonList.Add(New Person() With {.FirstName = strFirstName, .LastName = _
      strLastName, .Age = intAge, .IsFullEmployee = bolIsFullEmployee})
 
 End Sub
Da dürfte doch kein Unterschied sein, ob ich "PersonList.Add()" jetzt von der Hauptseite oder einem Popup ausführe, oder etwa nicht?


Könnte es daran liegen, das ich auf der Popup-Seite die Haupseite mit:
Dim MainPage as New Page()
MainPage.AddPersonFromPopup(...)
neu instanziere?

Beitrag wurde zuletzt am 08.06.09 um 19:32:10 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGrid in Silverlight aktualisiert sich nicht. 
Autor: ModeratorDaveS (Moderator)
Datum: 08.06.09 19:50

Ja.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGrid in Silverlight aktualisiert sich nicht. 
Autor: chrixko
Datum: 08.06.09 20:14

@DaveS: Und wie kann ich das in dem Fall umgehen?
Aber wieso wird dann die Collection korrekt gefüllt, nur das DataGrid nicht?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGrid in Silverlight aktualisiert sich nicht. 
Autor: ModeratorDaveS (Moderator)
Datum: 08.06.09 20:46

Wenn du eine neue Instanz anlegst wird nur die Sammlung in dieser Instanz geändert und ebenfalls nur das darin enthaltene DataGrid. Du musst die ursprüngliche Instanz ansprechen.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGrid in Silverlight aktualisiert sich nicht. 
Autor: chrixko
Datum: 08.06.09 21:02

Korrigiert mich wenn ich etwas falsch verstehe, aber muss ich in dem Fall dann die Collection in der Hauptseite als Shared deklarieren damit ich vom Popup aus mit "Page.PersonList" darauf zugreifen kann?

Weil vom Popup aus kann ich ohne erstellen von neuen Instanzen nur auf die Shared Member der Page-Klasse zugreifen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGrid in Silverlight aktualisiert sich nicht. 
Autor: ModeratorDaveS (Moderator)
Datum: 08.06.09 21:06

Das wäre eine (einfache) Möglichkeit. Du kannst auch die Instanz mit Constructor übergeben oder eine Eigenschaft programmieren.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGrid in Silverlight aktualisiert sich nicht. 
Autor: chrixko
Datum: 08.06.09 21:11

Alles klar, Vielen Dank!
Habt mir sehr geholfen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel