VB.Net-Forum - Beitragsübersicht -
ThemaV12: ObservableCollection, nur bedingte Benachrichtigung.
Von Jeiss
Datum 23. Mai 2016 um 22:08:04
Frage Hallo,
meine Frage betrifft das arbeiten mit der ObservableCollection(Of T)-Klasse.
Bei MSDN liest man diesbezüglich so schön: Stellt eine dynamische Datenauflistung dar, die Benachrichtigungen bereitstellt, wenn Elemente hinzugefügt oder entfernt werden oder wenn die gesamte Liste aktualisiert wird.
Das klang so vielversprechend, dass ich mir ein WPF Projekt angelegt habe um zu sehen ob sogar ich mittels dieser Klasse, mit meinen bescheidenen Kenntnissen, ein schönes Projekt erschaffen könnte.
Ich musste aber leider sehr schnell feststellen, dass das doch ein gewisses Mass an Fachkenntnissen verlangt.
Und jetzt bin ich an dem Punkt angelangt wo ich trotz Google, MSDN un co nur noch im Kreis rumdrehe. Und jetzt hoffe ich natürlich, dass jemand so nett und hilfsbereit ist um mir weiter zu helfen.

Ich versuche mal so gut ich kann mein Projekt mit meinen eigenen Worten zu beschreiben.
Es handelt sich um ein WPF Projekt mit Visual Studio 2015. Die Daten welche die Desktopanwendung bearbeiten soll stammen aus einer SQL Datenbank mit gleich 2 Tabellen die in einer "1 to n parent/child" Relation verbunden sind.
Diese Daten werden im Projekt als Entity Model bereitgestellt. Oder müsste ich doch besser sagen, dass das Model aus der .MDF Datei erstellt wurde und zum Projekt gehört.
Die Datensätze sollen dann schlussendlich in einem ListView dargestellt werden. Und der Gedanke war eigentlich der, dass beim löschen oder hinzufügen eines "Datensatzes" das Element im UI das gleich mit bekommen sollte und dann auch gleich anzeigen sollte.
Dank der in der ObservableCollection-Klasse bereitgestellten INotifyCollectionChanged und INotifyPropertyChanged Schnittstellen hatte ich mir viel weniger Schwierigkeiten erwartet.
Und jetzt habe ich natürlich viele Fragen an euch. Erstens, kann mit der oben beschriebenen "Konstellation" in meinem Projekt mittels der ObservableCollection(Of T)-Klasse erreicht werden, dass ohne viel Programmierung-Aufwand, eine funktionierende Anwendung entstehen kann?
Oder gilt das nur unter bestimmten Bedingungen? (vielleicht nicht bei Verwendung eines Entity Models?)
Oder liegt es einfach nur an Fehlern in meinem Projekt, dass das mit der "Benachrichtigung" nicht so gut klappt?
Da ich ja hoffe, dass jemand mir seine Hilfe anbieten wird, übe ich besser gleich mal wie man Code posten kann.
Hier mal zum Test ein (bestimmt für ein besseres Verständnis meines Problems nützlicher) Ausschnitt aus der xaml Datei aus dem "MainWindow".
    <Window.Resources>
<CollectionViewSource x:Key="TodosView"/>
<!--<CollectionViewSource x:Key="StagesView" Source="{Binding Source={StaticResource TodosView}, Path='Stages'}" />-->
<CollectionViewSource x:Key="StagesView" Source="{Binding Stages, Source={StaticResource TodosView}}" />
</Window.Resources>
Besten Dank im Voraus,
Jeiss
Antwort:
Von Nico
E-Mail nico.schertler@studentpartners.de
Datum 29. Mai 2016 um 14:41:52
Antwort Ich denke, wenn du ein sauberes ViewModel erstellst, beheben sich ein paar Punkte in deinem Code ganz von selbst, die momentan weniger hübsch umgesetzt sind. Aber im Großen und Ganzen passt das schon. Du kannst das ViewModel selbst auf verschiedene Weisen zusammenstellen. Eine mögliche Variante ist bspw., das komplette DbSet mit aufzunehmen. Beim Binden an .Local musst du nur immer daran denken, dass das eben die aktuell im Hauptspeicher vorhandenen Entities sind. Neue Entities hinzufügen solltest du immer direkt in das DbSet (mit anschließendem Aufruf von .SaveChanges()). Die .Local wird dabei automatisch benachrichtigt und das ListView aktualisiert sich selbstständig.

Nico
[ Antwort schreiben | Zurück zum VB.Net-Forum | Forum-Hilfe ]
Antworten
V12: ObservableCollection, nur bedingte Benachrichtigung. - Jeiss 23. Mai 2016 um 22:08:04
Re: ObservableCollection, nur bedingte Benachrichtigung. - Nico 26. Mai 2016 um 13:57:03
Re: ObservableCollection, nur bedingte Benachrichtigung. - Jeiss 26. Mai 2016 um 23:37:50
Re: ObservableCollection, nur bedingte Benachrichtigung. - Nico 27. Mai 2016 um 08:27:13
Re: ObservableCollection, nur bedingte Benachrichtigung. - Jeiss 28. Mai 2016 um 12:36:55
Re: ObservableCollection, nur bedingte Benachrichtigung. - Nico 29. Mai 2016 um 14:41:52

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  VB 2012
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum VB.Net-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB.Net | VB/VBA-Forum | DirectX | DirectX-Forum | Chat | Ausschreibungen | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015