Laden...

Forenbeiträge von ASommer Ingesamt 6 Beiträge

13.01.2022 - 21:16 Uhr

Hallo Zusammen,

ich habe mir eine Vorlage im Netzt gesucht wo ich eine Navigation haben.

Alle UserControls werden in einem ContentControl angezeigt.

Als Beispiel ich habe ein Usercontrol (View und ViewModel und Model) für eine Übersicht aller Personen. (ObservebalCollection)
Und ein Usercontrol für eine einzelne Person. (View und ViewModel und Model)

Wie verbinde ich die beiden? Also wenn ich auf die Übersicht eine Person anklicke, dass dann die Person in der Detailansicht angezeigt wird. Alles basiert auf ID´s.

Mein erstes Problem ist, dass ich im ContentControl bin wo aller Personen angezeigt werden. Ich aber es nicht schaffe dann im selben ContentControl die Detailansicht der Person anzeigen zu lassen.

Weiterhin ...mache ich eine Globale Klasse und schreibe dort die ID rein und frage dann in jedem UserControll die ID ab. Oder kann ich das mit Parameterübergeben zwischen den UserControls erledigen..????
Ich hoffe ihr versteht was ich meine.

Danke für eure Hilfe

13.01.2022 - 21:03 Uhr

Hallo Abt,

danke für deine Hilfe. Genauso will ich es und wollte ich es auch machen. Aber das Problem war darin, dass ich es nicht hinbekomme das Bild darzustellen.
Bin fleißig dran das Problem zu beheben, aber ein bisschen fehlt mir noch alles zu kapieren.

~5 Zeilen Code einfach lösen können (via MemoryStream oder Byte-Array, wie oben genannt).

Hättest du vielleicht ein Beispiel von dem MemoryStream?

Danke für deine Tipps.

Gruß
ASommer

06.01.2022 - 14:31 Uhr

Ganz Trivial eigentlich.

Beispiel: Eine ObservableCollection<Personen>

Diese ObservableCollection will ich als XML auf der Festplatte speichern, damit beim nächsten Programmaufruf die Daten wieder da sind.

Zu jeder Person gibt es ein Bild. Im ersten Ansatz hatte ich einen Ordner angelegt und dort eine Kopie des Bildes gespeichert wenn man eine neues Bild/Person hinzufügt.
Wenn ich aber aus der ObservableCollection den Eintrag lösche... war der Zugriff (von meinem Programm) auf dem Bild noch da, somit konnte ich das Bild nicht löschen.

Mit der jetzigen Methode, habe ich das Bild der Person in der XML der ObservableCollection gespeichert. Somit brauche ich keinen neunen Ordner wo die Bilder rein kommen.

Ob das der richtige weg ist weiß ich nicht... bin Newbie in der Sache was WPF und C# angeht.

04.01.2022 - 16:25 Uhr

Ich habe mir erstmal damit beholfen.
Das Bild wird dann in xml gespeichert und wieder gelesen somit muss ich das Original nicht löschen.
Muss jetzt nur noch schauen, dass ich die Bilder verkleinert bekomme, damit die xml nicht zu groß wird.


System.IO.File.ReadAllBytes(filePath);

Mit dem lesen... konnte ich ein wenig mehr darüber erfahren, aber so richtig schlau bin ich daraus noch nicht geworden.

02.01.2022 - 15:18 Uhr

Verstanden soweit.

Leider fehlt mir das wissen wie ich das mit dem Memory Stream mache.
Wo mache ich das am besten im View , im ViewModel oder XAML?

02.01.2022 - 10:18 Uhr

Hallo,

vielleicht kann mir jemand helfen zu WPF MVVM

Ich habe eine Klasse (Bilder) erstellt, dazu eine ObservableCollection in einem ViewModel. Diese Speichert Informationen zu Bildern die auf dem Laufwerk liegen.

String Pfad {get; set;}
String Bildname {get; set;}
usw.

In der Klasse wird der Pfad zu den Bildern gespeichert z.B. Ablageort = C:// Bilder/meinBild.jpg

Die ObservableCollection wird dann in XAML (View) als Liste angezeigt.
<Image Source="{Binding Klasse.Bild}"

Das klappt auch alles
Die Liste mit den Bildinformationen sicher ich dann in einer xml Datei.

Wenn ich aber nun versuche das Bild zu löschen, dann bekomme ich die Fehlermeldung, dass das Bild noch verwendet wird. Ich bekomme es einfach nicht hin, das Bild als Kopie zu öffnen, damit der Zugriff auf die Bilddatei möglich ist. Der Bildordner soll nicht als Ressource im Projekt eingebunden werden.

Mein Problem ist bei MVVM.... wie kann ich im ViewModel das Bild als Image holen und an die View übergeben?

Danke für eure Hilfe

Gruß
ASommer