Obtenir TreeViewItem pour l'élément sélectionné dans un TreeView
J'ai un TreeView qui est lié à un ensemble de données qui est d'avoir des relation parent-enfant. Comment je suis sélectionné TreeViewItem à partir de l'Arborescence? S'il vous plaît aider moi. Mon code est ci-dessous.
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 Classe :-
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;
}
}
OriginalL'auteur Junaise | 2011-03-07
Vous devez vous connecter pour publier un commentaire.
Essayer
ou de passer par les liens ci-dessous.Espérons que cela aide
La liaison de données pour SelectedItem dans un WPF Treeview
Obtenir SelectedItem de TreeView?
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/36aca7f7-0b47-488b-8e16-840b86addfa3/
HierarchicalDataTemplate
.Ne pouvez pas obtenir le petit-fils de cette façon.
Ce que je viens de remarquer.... malheureusement...
pour cela, jetez un oeil à ma réponse.
OriginalL'auteur biju
Tout biju la réponse de travaux pour des hiérarchies plates, j'ai dû chercher une solution pour HierarchicalDataTemplates. C'est l'extension de la méthode qui a fonctionné pour moi:
Vous pouvez l'utiliser avec
OriginalL'auteur Matt
Cela fonctionne pour les arbres dont la source de données est lié par l'intermédiaire d'un HierarchicalDataTemplate
Poignée TreeViewItem.Sélectionné
Et définir la TreeViewItem que la Balise.
Où vous pouvez les récupérer plus tard
TreeViewItem.Selected="TreeViewItem_OnItemSelected"
dans le code? Je suis tenter de fonder un nouveau hors de contrôle TreeView et souhaitez gérer cela en interne plutôt que dans chaque endroit que je besoin d'un TreeView. Je n'arrive pas à trouver un événement, je peux joindre via le TreeViewItem espace de noms n'importe où...Vous pouvez faire cela dans votre contrôle du constructeur comme suit:
AddHandler(TreeViewItem.SelectedEvent, new RoutedEventHandler(TreeViewItem_Selected)); private void TreeViewItem_Selected(object sender, RoutedEventArgs e) { _selectedTreeViewItem = e.OriginalSource as TreeViewItem; }
OriginalL'auteur
La meilleure solution que j'ai trouvé implique une simple méthode d'assistance et peut être utilisé dans pratiquement n'importe quel de le TreeView événements (par exemple, SelectedItemChanged, MouseLeftButtonUp, etc.).
Je suis à l'aide de plusieurs hiérarchie des modèles de données et c'est le méthode qui a fonctionné pour moi. Maintenant, je suis en mesure de créer un nouveau contrôle basé sur TreeView et peut gérer tous les événements impliquant l'élément sélectionné à l'interne.
OriginalL'auteur James M