Aber ich habe einen Vorschlag: solltest du Interesse haben alternative Ansätze zu sehen wie man es in der WPF macht oder besser gesagt wie ich es machen würde kannst du gerne einen Thread hierfür im WPF Bereich erstellen und wir gehen das vorab schon mal durch.
Schreib einfach dazu WIE du die Daten gerne Abrufen möchtest und welche. Vieleicht ein Codeschnipsel wie du es bisher unter WinForms gemacht hast und ich mache das WPF equivalent dazu.
Hi @Nofear23m, sorry das ich erst jetzt dazu komme, aber die gute alte Arbeit lässt mich leider nicht früher gehen, danke dir schon mal sehr für dein nettes Angebot^^
Also, das entsprechende Winforms-Projekt habe ich dir unten angehängt, dieses kurz zusammengefasst:
Ich habe ein DataSet erstellt, In diesem gibt es einen DataTable: Categorys, diese haben einen Namen und im Falle von DataSets natürlich auch eine ID, diesem DataTable untergeordnet ist der DataTable: Notiz.
Auch mit ID, Name, Text, und einer CategoryID, anhand derer die jeweilige Notiz, einer Category untergeordnet ist, an der Notiz wiederum sind wieder DataTables angeschlossen, für Bilder, Dateien, und Links/URLs.
DataSet.jpg vermittelt das evtl. etwas genauer

Im Mainview(.jpg) hatte ich gebundene Controls, die erste Listbox enthielt die Categorys, die zweite enthielt die der jeweiligen Category untergeordneten Notizen, und die RichTextBox deren Text.
Wurde im Menü auf AllowEdit(.jpg) geklickt wurde im selben Dateipfad in welchem die Datenbank.xml lag, eine Datei mit namen "Working" erstellt (wenn diese Datei existiert, konnte keine andere Instanz des Programms, das editieren erlauben, ErfinderDesRades sagte mir das nennt man Pessimistic Lock). War das Editieren jedoch erlaubt, konnte eine Category erstellt/bearbeitet werden (CategoryName.jpg) oder eine Notiz angelegt/erstellt/bearbeitet werden(NoteCreation.jpg).
Im Detailview (fast identsich zur Notecreation) wurde dann alles angezeigt inkl. der Bilder, Dateien, Links.
Wichtig wäre für mich also auf jeden Fall das sämtliche Daten in einer Datei gespeichert werden, so dass mehrere Instanzen die Daten lesen (und wenn gerade erlaubt) auch bearbeiten können.
Ideal wäre (das habe ich in meiner Winformsapplication leider nicht hinbekommen) das man auch Unterkategorien anlegen kann, welcher man die Notizen zuordnen kann.
Die jeweiligen Notizen, benötigen Name, übergeordnete Kategorie, Text, beliebige Anzahl Bilder, beliebige Anzahl Dateien und beliebige Anzahl an Links (Ich liebäugle hier sehr mit deiner im Tutorial gesehenen methode eines Datatemplates in der Listbox)
Geplant wäre also z.B. im MainViewWindow, links eine Art Treeview, und Rechts eine Listbox, welche eine Art Übersicht der jeweiligen Note darstellt, welche ich in einem Detailview, detailierter darstellen möchte.
Soweit ich das Thema WPF bisher verstanden habe, sollen Daten/Berechnungen usw. im Hintergrund gemacht werden, so das das Window die Daten quasi "nur" noch anzuzeigen hat, ich habe also eine wahrscheinlich stark zu überarbeitende Klasse erstellt,
wie ich das mir im Kopf etwa vorgestellt habe, allerdings bin ich hier bereits daran gescheitert deinen Vorschlag mit der IObservable zu integrieren, da diese offensichtlich nicht die Methode ".Add" bereitstellt, desweiteren, scheitere ich an der Grundsätzlichen Überlegung, wie die Daten als Datei gespeichert/geladen werden könnten - wie bereits gesagt bin ich mit der Klasse aktuell wohl eh auf dem Holzweg.
VB.NET-Quellcode
- Public Class Note
- Public Class Categorys
- Public Property caName As String
- Public Property caParent As Categorys
- Public Sub New(Name As String, Optional Parent As Categorys = Nothing)
- caName = Name
- If Parent IsNot Nothing Then
- caParent = Parent
- End If
- End Sub
- End Class
- Public Class Notes
- Public Property nName As String
- Public Property nParent As Categorys
- Public Property nText As String = ""
- Public Property nImages As List(Of String) ' Hier meintest du in deinen Tutorials, das man Iobservable nehmen sollte, dieses verfügt jedoch nicht über die methode add ?
- Public Property nFiles As List(Of String)
- Public Property nLinks As List(Of String)
- Public Sub New(Name As String, Parent As Categorys)
- nName = Name
- nParent = Parent
- End Sub
- Public Sub addNotetext(text As String)
- nText = text
- End Sub
- Public Sub addImage(imagePath As String)
- nImages.Add(imagePath)
- End Sub
- Public Sub addFile(FilePath As String)
- nFiles.Add(FilePath)
- End Sub
- Public Sub addLink(Link As String)
- nLinks.Add(Link)
- End Sub
- End Class
- End Class
Ich möchte definitiv klarstellen, das ich hier nicht die Arbeit auf dich abwälzen oder hier reine C&P Lösungen erhalten möchte! Ich habe nur aktuell nicht einmal einen Ansatz mit welchem ich beginnen könnte, geschweige denn ideen, wie ich das im allgemeinen umzusätzen hätte.
Danke dir nochmals für dein Angebot
Lieben Gruß
AsusDK
If Energy = Low Then
Drink(aHugeCoffee)
Else
Drink(aHugeCoffeeToo)
End If
Drink(aHugeCoffee)
Else
Drink(aHugeCoffeeToo)
End If