Hallo miteinander
Ich hab da ne Frage, die vielleicht sehr einfach zu beantworten ist, bin aber die ganze Zeit schon am Überlegen, wie ich das mache und komm einfach auf keinen grünen Zweig:
Und zwar möchte ich ein Art Quick Start Guide für mein Programm machen, mit links einem TreeView und rechst einer Detailansicht.
Das TreeView zu befüllen scheint recht einfach zu sein, aber wie erzeuge ich die Datenstruktur dafür dynamisch? Hintergrund: Da es doch recht umfangreich ist schreibe ich ein Tool, das mir die Arbeit erleichtern soll. Man soll Überschrift (zur Anzeige im TreeView), den Hilfetext selbst und den Pfad zu einem Screenshot adden können, indem man diese in Textboxen eingibt und dann auf einen Button klickt. Auch mit dabei: ein Prefix (z.B. 1.2.1), damit das Programm weiss, ich welcher Hierarchieebene der Eintrag zu machen ist. In meinem Model hab ich also diese Klasse:
Spoiler anzeigen
Aber wie erzeuge ich die Datenstruktur dann am besten, wie gesagt? Im Beispielprogramm von Nofear23m sieht das ja so aus, das ist also klar wie das funktioniert, aber es ist halt statisch:
Spoiler anzeigen
_____________________________________________________________________________
Edit:
Hab es jetzt so halb hinbekommen, aber so richtig dynamisch ist es noch nicht, es funktioniert nur mit zwei Hierarchieebenen:
Spoiler anzeigen
Weiss jemand wie ich das noch verbessern könnte?
Ich hab da ne Frage, die vielleicht sehr einfach zu beantworten ist, bin aber die ganze Zeit schon am Überlegen, wie ich das mache und komm einfach auf keinen grünen Zweig:
Und zwar möchte ich ein Art Quick Start Guide für mein Programm machen, mit links einem TreeView und rechst einer Detailansicht.
Das TreeView zu befüllen scheint recht einfach zu sein, aber wie erzeuge ich die Datenstruktur dafür dynamisch? Hintergrund: Da es doch recht umfangreich ist schreibe ich ein Tool, das mir die Arbeit erleichtern soll. Man soll Überschrift (zur Anzeige im TreeView), den Hilfetext selbst und den Pfad zu einem Screenshot adden können, indem man diese in Textboxen eingibt und dann auf einen Button klickt. Auch mit dabei: ein Prefix (z.B. 1.2.1), damit das Programm weiss, ich welcher Hierarchieebene der Eintrag zu machen ist. In meinem Model hab ich also diese Klasse:
VB.NET-Quellcode
- Option Strict On
- Imports System.Collections.ObjectModel
- Public Class KapitelModel
- Public Property Prefix As String
- Public Property Ueberschrift As String
- Public Property Inhalt As String
- Public Property BildPfad As String
- Public Property UnterKapitel As ObservableCollection(Of KapitelModel)
- Public Sub New(argPrefix As String, argUeberschrift As String, argInhalt As String, argBildPfad As String)
- Prefix = argPrefix
- Ueberschrift = argUeberschrift
- Inhalt = argInhalt
- BildPfad = argBildPfad
- End Sub
- End Class
Aber wie erzeuge ich die Datenstruktur dann am besten, wie gesagt? Im Beispielprogramm von Nofear23m sieht das ja so aus, das ist also klar wie das funktioniert, aber es ist halt statisch:
VB.NET-Quellcode
- Imports System.Collections.ObjectModel
- Public Class HierarchialDataTemplate
- Public Sub New()
- ' Dieser Aufruf ist für den Designer erforderlich.
- InitializeComponent()
- ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
- Dim parent1 As New Parent("Ferry", "Porsche", "Porsche")
- Dim ferryKinder As New ObservableCollection(Of Child) From {New Child("Ferdinand Alexander", "Porsche") With {.Kinder = New ObservableCollection(Of Child) From {New Child("Ferdinand Oliver", "Porsche")}}, New Child("Gerhard Anton", "Porsche")}
- parent1.Kinder = ferryKinder
- Dim parent2 As New Parent("Anton", "Piech", "Volkswagen (Werksleiter)")
- Dim antonKinder As New ObservableCollection(Of Child) From {New Child("Ernst", "Piech"), New Child("Louise", "Daxer-Piech"), New Child("Ferdinand", "Piech"), New Child("Hans Michael", "Piech")}
- parent2.Kinder = antonKinder
- HierarchieDaten = New ObservableCollection(Of WPF_Templates.Parent)
- HierarchieDaten.Add(parent1)
- HierarchieDaten.Add(parent2)
- Me.DataContext = Me
- ' RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("HierarchieDaten"))
- End Sub
- Public Property HierarchieDaten As ObservableCollection(Of Parent)
- End Class
_____________________________________________________________________________
Edit:
Hab es jetzt so halb hinbekommen, aber so richtig dynamisch ist es noch nicht, es funktioniert nur mit zwei Hierarchieebenen:
VB.NET-Quellcode
- Private KapitelListe() As Model.KapitelModel = {}
- Private Sub Speichern()
- Dim Prefixes() As String
- Dim Separator() As String = {"."}
- Prefixes = Prefix.Split(Separator, StringSplitOptions.None)
- If KapitelListe.Length < CInt(Prefixes(0)) Then
- ReDim Preserve KapitelListe(CInt(Prefixes(0)))
- End If
- If Prefixes.Length = 2 Then
- If KapitelListe(CInt(Prefixes(0))).UnterKapitel.Length < CInt(Prefixes(1)) Then
- ReDim Preserve KapitelListe(CInt(Prefixes(0))).UnterKapitel(CInt(Prefixes(1)))
- End If
- End If
- If Prefixes.Length = 1 Then
- WerteSetzen(KapitelListe(CInt(Prefixes(0))))
- ElseIf Prefixes.Length = 2 Then
- WerteSetzen(KapitelListe(CInt(Prefixes(0))).UnterKapitel(CInt(Prefixes(1))))
- End If
- MainModule.Root = New ObservableCollection(Of Model.KapitelModel)(KapitelListe)
- End Sub
Weiss jemand wie ich das noch verbessern könnte?
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „kafffee“ ()