Guten Abend/Morgen VBP-Community,
Ich bin gerade dabei ein Tool zu schreiben,welches mir meine Projekte zwischen USB und PC Synchronisiert. Ich bin soweit, dass das auslesen der Projekt Ordner soweit klappt. Habe mir dazu natürlich ein Paar Klassen geschrieben. Eine Klasse die Eigenschaften der Projekte hält, eine workaround Klasse die ich schreiben musste,weil sich FileInfo Objekte sich nicht mit nem XMLSerializer Serialisieren lassen und ne Config Klasse, die Einstellungen durch Serialisierung speichert und ausliest. Ursprünglich wollte ich dann eine List<Project> an die Listbox binden und hab deshalb auch die ToString Methode überschrieben. Bei der Listbox fehlt mir aber die Funktion, ein Item auszuklappen und z.B. die in dem Projekt Ordner liegend Files aufzulisten. Keine Ahnung ob sich das mithilfe von nem Usercontrol lösen lässt,deshalb war mein zweiter Gedanke WPF zu lernen, zu dem es eigentlich auch mal Zeit ist. Die Frage ist, wenn ich nun auf WPF umstelle, muss ich dann meine ganze Klassen Struktur umwerfen? So ein Control ,bei dem sich die Items ausklappen lassen und weitere Subitems auflisten lässt ist in WPF doch recht einfach umsetzten? Wie groß ist dabei der Lern Aufwand,wenn man sich an Winforms gewöhnt hat?
Spoiler anzeigen
Ich bin gerade dabei ein Tool zu schreiben,welches mir meine Projekte zwischen USB und PC Synchronisiert. Ich bin soweit, dass das auslesen der Projekt Ordner soweit klappt. Habe mir dazu natürlich ein Paar Klassen geschrieben. Eine Klasse die Eigenschaften der Projekte hält, eine workaround Klasse die ich schreiben musste,weil sich FileInfo Objekte sich nicht mit nem XMLSerializer Serialisieren lassen und ne Config Klasse, die Einstellungen durch Serialisierung speichert und ausliest. Ursprünglich wollte ich dann eine List<Project> an die Listbox binden und hab deshalb auch die ToString Methode überschrieben. Bei der Listbox fehlt mir aber die Funktion, ein Item auszuklappen und z.B. die in dem Projekt Ordner liegend Files aufzulisten. Keine Ahnung ob sich das mithilfe von nem Usercontrol lösen lässt,deshalb war mein zweiter Gedanke WPF zu lernen, zu dem es eigentlich auch mal Zeit ist. Die Frage ist, wenn ich nun auf WPF umstelle, muss ich dann meine ganze Klassen Struktur umwerfen? So ein Control ,bei dem sich die Items ausklappen lassen und weitere Subitems auflisten lässt ist in WPF doch recht einfach umsetzten? Wie groß ist dabei der Lern Aufwand,wenn man sich an Winforms gewöhnt hat?
C#-Quellcode
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Proj_Synchron
- {
- //FileInfo wont serialize because it has no parameterless constructor,so im using this class instead
- public class ConfigFileInfo
- {
- private string name;
- public string Name
- {
- get { return name; }
- set { name = value; }
- }
- private string fullname;
- public string Fullname
- {
- get { return fullname; }
- set { fullname = value; }
- }
- private long length;
- public long Length
- {
- get { return length; }
- set { length = value; }
- }
- public ConfigFileInfo(string cname, string cfullname,long clength)
- {
- this.Name = cname;
- this.Fullname = cfullname;
- this.Length = clength;
- }
- //Empty Constructor for Serializing
- public ConfigFileInfo()
- {
- }
- }
- }
C#-Quellcode
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- namespace Proj_Synchron
- {
- public class Project
- {
- private string projname;
- private DateTime lastchanged;
- private int filecount;
- private List<ConfigFileInfo> files;
- private string projectfullpath;
- public string ProjectName
- {
- get { return projname; }
- set { projname = value; }
- }
- public DateTime LastChanged
- {
- get { return lastchanged; }
- set { lastchanged = value; }
- }
- public int Filecount
- {
- get { return filecount; }
- set { filecount = value; }
- }
- public List<ConfigFileInfo> ProjectFiles
- {
- get { return files; }
- set { files = value; }
- }
- public string ProjectFullPath
- {
- get { return projectfullpath; }
- set { projectfullpath = value; }
- }
- public Project(string Projectname,string Projectfullpath,List<ConfigFileInfo> ProjectFiles,int Filecount,DateTime LastChanged)
- {
- this.ProjectName = Projectname;
- this.ProjectFullPath = Projectfullpath;
- this.ProjectFiles = ProjectFiles;
- this.Filecount = Filecount;
- this.LastChanged = LastChanged;
- }
- //Empty Constructor for Serializing
- public Project()
- {
- }
- public override string ToString()
- {
- return this.ProjectName;
- }
- }
- }