Immer TreeViewItem für das ausgewählte Element in einer TreeView
Ich habe eine TreeView, die an ein dataset gebunden ist, die mit Eltern-Kind-Beziehung. Wie bekomme ich seleted TreeViewItem aus dem TreeView? Bitte helfen Sie mir. Mein code ist unten.
xaml:-
<TreeView Name="tvPersonal" Background="Transparent" ItemsSource="{Binding RootNodes}" SelectedItemChanged="tvPersonal_SelectedItemChanged">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding rsParentChild}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
public MainWindow()
{
InitializeComponent();
DataSet ds = new BL.BLMenu().GetAllMenues(new BOModule { Name = Modules.Personnel });
ds.Tables[0].TableName = "Menu";
DataRelation relation = new DataRelation("rsParentChild",
ds.Tables["Menu"].Columns["MenuId"],
ds.Tables["Menu"].Columns["ParentId"]);
relation.Nested = true;
ds.Relations.Add(relation);
BOMenu mnu = new BOMenu();
BOMenu.RootNodes = ds.Tables["Menu"].DefaultView;
BOMenu.RootNodes.RowFilter = "ParentId IS NULL";
this.DataContext = this;
stbiDate.Content = DateTime.Now;
}
public DataView RootNodes
{
get { return BOMenu.RootNodes; }
}
BOMenu Klasse :-
public class BOMenu
{
public string MenuId
{
get;
set;
}
public string Name
{
get;
set;
}
public string ParentId
{
get;
set;
}
public int Priority
{
get;
set;
}
public static DataView RootNodes
{
get;
set;
}
}
InformationsquelleAutor Junaise | 2011-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
oder gehen Sie durch die links unten an.Hoffe, das hilft
Daten die Bindung an die SelectedItem in einer WPF-Treeview
Holen Sie sich SelectedItem aus TreeView?
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/36aca7f7-0b47-488b-8e16-840b86addfa3/
HierarchicalDataTemplate
.Kann nicht Holen Sie sich die Enkel auf diese Weise.
Dies habe ich gerade bemerkt.... leider...
für diese haben Sie einen Blick auf meine Antwort.
InformationsquelleAutor biju
Während biju Antwort funktioniert für flache Hierarchien, musste ich mich nach einer Lösung für HierarchicalDataTemplates. Dies ist das extension-Methode, die für mich gearbeitet:
Können Sie es mit
InformationsquelleAutor Matt
Dies funktioniert für Bäume, deren Datenquelle gebunden ist, die über ein HierarchicalDataTemplate
Griff TreeViewItem.Ausgewählte
Und legen Sie die TreeViewItem als der Tag.
Welche Sie abrufen können später
TreeViewItem.Selected="TreeViewItem_OnItemSelected"
im code? Ich bin versucht auf Basis einer neuen Steuerung aus TreeView und möchte, um diese zu bewältigen intern eher als in jedem Ort, den ich erfordern ein TreeView. Ich kann nicht scheinen zu finden, eine Veranstaltung, die ich anfügen kann über die TreeViewItem namespace überall...Sie würde tun, die im Konstruktor des Steuerelements wie diese:
AddHandler(TreeViewItem.SelectedEvent, new RoutedEventHandler(TreeViewItem_Selected)); private void TreeViewItem_Selected(object sender, RoutedEventArgs e) { _selectedTreeViewItem = e.OriginalSource as TreeViewItem; }
InformationsquelleAutor
Die beste Lösung, die ich gefunden habe, beinhaltet einen einfachen Helfer-Methode und kann verwendet werden, in nahezu jedem der TreeView-Ereignisse (d.h., SelectedItemChanged, MouseLeftButtonUp, etc.).
Ich bin mit mehreren Hierarchie-Daten Vorlagen, und dies ist der nur - Methode, die für mich gearbeitet. Nun, ich bin in der Lage, erstellen Sie ein neues Steuerelement basierend auf TreeView und kann mit allen Veranstaltungen, an denen das ausgewählte Element intern.
InformationsquelleAutor James M