HX3 Foren  

  HX3 Foren > Konstruktiv > Software- und Webentwicklung

Software- und Webentwicklung Planung, Programmierung und Administration
UML, JavaScript/DOM, ASP, JSP, PHP, Apache, MySQL, Python, Perl (...)

Antwort
 
Themen-Optionen Ansicht
Alt 25.11.2012, 17:26   #1 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 27
Beiträge: 1.703
Standard Ordner Übersicht in WPF

Hallo zusammen,

ich bin seit ein paar Tagen dabei mir ein kleines Sync Tool zu bauen. Dabei stehe ich vor einem kleinen Problem. Ich möchte in meiner WPF Oberfläche (entsteht alles in C#) eine Übersicht über meine gewählten Quell und Zielordner anzeigen. Bis jetzt habe ich dafür ein TreeView genommen:


Jetzt möchte ich aber die Möglichkeit haben in diesen TreeViews die Ordner Struktur besser zu zeigen als nur über "/Neuer Ordner/". Dabei bin ich nach kurzer Suche auch schon den Nodes begegnet, dummerweise sind die für Windows Forms gewesen und ich hab noch keine Möglichkeit gefunden sowas für WPF zu bauen.
Weiß da jemand wie ich das auch in mein Projekt bekomme?

Falls die Antwort so einfach ist, dass sie selbst ein Blinder finden würde, bitte ich um Verständnis, ich stehe noch am Anfang meiner Ausbildung und kann zwar Google bedienen, hab aber noch keinen klaren Überblick über die Suchbegriffe
JoeJoe87577 ist offline   Mit Zitat antworten
Alt 04.12.2012, 09:47   #2 (permalink)
His Awesomeness!
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von flickflack
 
Registriert seit: 25.07.2006
Ort: Regnum Borussiae
Beiträge: 9.282
Standard

How to conquer teh Inderwebz!!1!elf:

"FileTree in WPF"... ... "wpf filetree" -> Google ... ... Google -> "HierarchicalDataTemplate" ... ... "HierarchicalDataTemplate" -> Google ... ... Google ->
wpf - HierarchicalDataTemplate with Treeview in MVVM - Stack Overflow ... ... Stack Overflow -> c# - populate treeview from list of file paths in wpf - Stack Overflow ... ...

- fin -



"Stack Overflow" lohnt immer...
flickflack ist offline   Mit Zitat antworten
Alt 23.12.2012, 11:04   #3 (permalink)
Beta Tester 10 Jahre hx3
20.000 Beiträge
 
Registriert seit: 13.04.2003
Beiträge: 29.761
Standard

@JJ
Warum nimmst du aber nicht die Eigenschaften und machst toString()? Die kannst du ja dann in die Access speichern.
Snevsied ist offline   Mit Zitat antworten
Alt 23.12.2012, 11:40   #4 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 27
Beiträge: 1.703
Standard

Hab ich jetzte auch gemacht, dank Flicki, aber ich hab noch so ein kleines Problem mit dem Gruppieren der Daten im TreeView. Ich muss da bestimmte Items finden und die bekomm ich dann nicht als TreeVeiwItems zurück wenn ich das per FindName versuche...
JoeJoe87577 ist offline   Mit Zitat antworten
Alt 23.12.2012, 11:51   #5 (permalink)
Beta Tester 10 Jahre hx3
20.000 Beiträge
 
Registriert seit: 13.04.2003
Beiträge: 29.761
Standard

Poste mal den Quellcode ...
Snevsied ist offline   Mit Zitat antworten
Alt 23.12.2012, 11:53   #6 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 27
Beiträge: 1.703
Standard

Code:
 private void treeViewInhalt()
        {
            foreach (sourceData_Ent entity in sourceFileList)
            {
                if (Properties.Settings.Default.sourceFolderPath.Equals(entity.sourceDataDirectoryName))
                {
                    TrVQuellordner.Items.Add(entity.sourceDataName);
                }
                else
                {
                    TrVitem item = new TrVitem();
                    item.MainItem = entity.sourceDataDirectoryName;
                    item.SubItem = entity.sourceDataName;
                    treeViewItemsList.Add(item);
                }
            }
            if (treeViewItemsList.Count != 0)
            {
                List<string> inTreeView = new List<string>();
                foreach (TrVitem item in treeViewItemsList)
                {
                    if (inTreeView.Contains(item.MainItem))
                    {    //Hier liegt das problem, i2 wird als null zurückgegeben
                        var i2 = TrVQuellordner.FindName(item.MainItem) as TreeViewItem;
                        TreeViewItem subitem = new TreeViewItem() { Header = item.SubItem };
                        i2.Items.Add(subitem);
                    }
                    else
                    {
                        inTreeView.Add(item.MainItem);
                        TreeViewItem trvitem = new TreeViewItem();
                        trvitem.Header = item.MainItem;
                        trvitem.Items.Add(item.SubItem);
                        TrVQuellordner.Items.Add(trvitem);
                    }
                }
            }
        }
TrVItem ist ein extra Object mit MainItem: Ordnername und SubItem: Dateiname
JoeJoe87577 ist offline   Mit Zitat antworten
Alt 23.12.2012, 14:35   #7 (permalink)
Beta Tester 10 Jahre hx3
20.000 Beiträge
 
Registriert seit: 13.04.2003
Beiträge: 29.761
Standard

Wieso nutzt du nicht gleich TreeViewItem anstatt von var?
Snevsied ist offline   Mit Zitat antworten
Alt 23.12.2012, 14:36   #8 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 27
Beiträge: 1.703
Standard

macht keinen Unterschied, dann gibts auch nur null...
JoeJoe87577 ist offline   Mit Zitat antworten
Alt 23.12.2012, 16:18   #9 (permalink)
Beta Tester 10 Jahre hx3
20.000 Beiträge
 
Registriert seit: 13.04.2003
Beiträge: 29.761
Standard

Hast du mal debuggt? Evtl. wird es schon vorher als null Wert rübergereicht.
Snevsied ist offline   Mit Zitat antworten
Alt 23.12.2012, 18:12   #10 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 27
Beiträge: 1.703
Standard

Bin schon durch alles mal durchgegangen, ich hab aber jetzt ne andere Idee, ich lass mir einfach die Namen der Items zusammen mit der Position im TreeView in einem Dictonary speichern und gehe dann über den Index an die Items ran.
JoeJoe87577 ist offline   Mit Zitat antworten
Alt 23.12.2012, 18:44   #11 (permalink)
His Awesomeness!
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von flickflack
 
Registriert seit: 25.07.2006
Ort: Regnum Borussiae
Beiträge: 9.282
Standard

Ne Node/Item im TreeView finden:

How to: Find a TreeViewItem in a TreeView

"GetTreeViewItem" liefert ein TreeViewItem zurück.

Falls es das ist, was du tun wolltest. Ansonsten modifizierste den Code halt, oder machst es halt statisch, wenn die Daten sich nie nicht ändern
flickflack ist offline   Mit Zitat antworten
Alt 23.12.2012, 20:42   #12 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 27
Beiträge: 1.703
Standard

Danke dafür, bis auf das ich im 4.0 Framework unterwegs bin passt das . Aber ich werds sehr wahrscheinlich ändern.
Statisch ist keine alternative, weil ich das ja auf alle möglichen Ordner bzw Daten anwenden will.
JoeJoe87577 ist offline   Mit Zitat antworten
Alt 24.12.2012, 00:33   #13 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 27
Beiträge: 1.703
Standard

Ok, Problem anders gelöst. Anstatt die Items direkt von der Datenbank in das TreeView zu schmeißen, lass ich mir jetzt eine Liste erstellen die alle Items enthält die rein sollen und lasse mir dann erst die MainItems erstellen und prüfe dann wie viele Items in der Liste das gleiche MainItem haben und setzte die dann unter das entsprechende. Ist alles noch ziemlich unsauber und kompliziert, aber es ist eine Lösung und die werde ich noch ein wenig verschönern.
JoeJoe87577 ist offline   Mit Zitat antworten
Alt 24.12.2012, 12:14   #14 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 27
Beiträge: 1.703
Standard

Naja daraus hat sich dann jetzt noch eine kleine Unordnung ergeben
Wie im Bild zu sehen wird jetzt jeder Ordner einzeln aufgelistet, da sollte ich vielleicht noch was machen
Angehängte Grafiken
Dateityp: jpg syncFolder0.1aFolder.jpg (97,6 KB, 4x aufgerufen)
JoeJoe87577 ist offline   Mit Zitat antworten
Alt 24.12.2012, 18:21   #15 (permalink)
Beta Tester 10 Jahre hx3
20.000 Beiträge
 
Registriert seit: 13.04.2003
Beiträge: 29.761
Standard

Ist WPF anders als C#?
Snevsied ist offline   Mit Zitat antworten
Alt 24.12.2012, 18:22   #16 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 27
Beiträge: 1.703
Standard

WPF ist das neue Windows Forms, der Code Behind ist immer noch C# und funktioniert auch genauso, die Schlüsselwörter sind ein wenig anders, aber man kann viel mehr damit machen.
Z.B. lässt sich WPF als normale Windows Anwendung aufbauen aber auch als Webanwendung.
JoeJoe87577 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
How To: Addons einbinden Iceman Mods & Addons 167 08.01.2013 13:45
Yoma Addon Sync 2009 - Version 1.00.67 Pfandgiraffe Mods & Addons 50 14.07.2012 01:20
Welcher Ordner HartmutBraun Multiplayer Community 2 26.02.2011 14:41
Clan- und Fanseiten Übersicht Grey Wolf Die Litfaßsäule 25 26.02.2011 02:21
addon ordner auslagern Berserker Technische Fragen & Probleme 14 10.01.2011 17:07


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116