Hallo, ich habe folgendes Problem mit einem TreeView in WPF:
Ich erstelle mir eine Liste mit verschiedenen Informationen und diese Liste beinhaltet auch noch wieder eine Liste.
Durch viele berechnungen usw wird diese gefüllt.. alles chic soweit :-)
nun möchte ich diese Liste in einem treeView ausgeben lassen...
ich adde die Items per code behind und das funktioniert auch alles einwandfrei...
ich speichere dabei noch bestimmte Informationen im tag Feld der treeViewItems...
diese möchte ich nun gerne auf mousclick abrufen um sie z.B. in einem Texfeld anzuzeigen...
mein Problem ist, dass ich auf google suche immer nur gefunden habe, dass man das alles per binding machen soll... so habe ichs aber nicht gemacht... ist meine Lösung generell verkehrt ?? verbessert sich die Performance wenn ich das treeView per Binding fülle ??
ausßerdem bekomme ich es einfach nicht hin das selectierte Item tag auszugeben und wie gesagt ist das Programm extrem Resourcen fressend... also wenn ich die treeView gefüllt habe (das können extrem viele elemente werden --> meist 4-7 main Nodes mit 20 - 400 childs)
hier mal teile meines codes:
mein Datensatz für das treeView:
public class TreeListe
{
public string NetzMaske { get; set; }
public string Bezeichner { get; set; }
public List<TreeListPart> TreePart { get; set; }
}
public class TreeListPart
{
public string NetzID { get; set; }
public string Breadcast { get; set; }
public int HostAlle { get; set; }
public string Teilnetz { get; set; }
}
der xaml Code für das treeView:
<TreeView TreeViewItem.Selected="TreeViewItem_Selected" Margin ="10,107,10,10" Name="treeView" HorizontalAlignment="Left" Width="266">
so fülle ich das treeView:
private void buttonTreeView_Click(object sender, RoutedEventArgs e)
{
foreach (TreeListe item in tree)
{
TreeViewItem Master = new TreeViewItem();
Master.Header = item.Bezeichner;
treeView.Items.Add(Master);
foreach (TreeListPart item2 in item.TreePart)
{
TreeViewItem Slave = new TreeViewItem();
Slave.Header = item2.Teilnetz;
Slave.Tag = (item2.NetzID + " bis " + item2.Breadcast);
Master.Items.Add(Slave);
}
}
}
und hier die funktion zum Abrufen der Tags.. weiß aber irgendwie nicht was da rein soll:
private void TreeViewItem_Selected(object sender, RoutedEventArgs e)
{
//??????
}
wie gesagt... das füllen der treeView funktioniert sehr gut.. nur kostet das Navigieren im treeView massiv Perfomance und ich bekomme die tag's nicht ausgelesen auf Mouseclick...
danke schonmal für jegliche Mühen ;-)