Treeview récupérer valeur sélectionnée
Bonjour à tous,
voilà j'ai fait un code en vb.net que je dois convertir en C#.
J'ai un treeview(WPF remplit avec un dataset et des datarelations) et je voudrai récupérer la valeur que doit me retourner le treeview quand je clique dessus.
En VB.net, j'avais fait ça :
Code:
1 2 3 4 5 6 7 8 9
|
Dim itemTreeview As TreeViewItem = CType(Me.ArboTypeArt.ItemContainerGenerator.ContainerFromItem(e.NewValue), TreeViewItem)
If itemTreeview IsNot Nothing Then
itemTreeview.IsSelected = True
itemTreeview.IsExpanded = True
Else
'c'est un enfant, on recupere l'id article
Dim index As Integer
index = Me.ArboTypeArt.SelectedItem(0) |
J'ai réussi à faire ça en C# mais je bloque sur l'index.
Pouvez-vous m'aider s'il vous plait?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
TreeViewItem itemTreeview = (TreeViewItem)ArboTypeArt.ItemContainerGenerator.ContainerFromItem(e.NewValue);
if (itemTreeview != null)
{
//MessageBox.Show("parent");
itemTreeview.IsSelected = true;
itemTreeview.IsExpanded = true;
}else{
//MessageBox.Show("enfant");
//c'est un enfant, on recupere l'id article
int index;
index = ArboTypeArt.SelectedItem;
//MessageBox.Show(Convert.ToString(index)); |
Le XAML (au cas où vous en ayez besoin) :
Code:
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
|
<Window.Resources>
<DataTemplate x:Key="PropTemplate">
<TextBlock Text="{Binding Nom}"></TextBlock>
</DataTemplate>
<HierarchicalDataTemplate x:Key="ArticleTemplate"
ItemsSource="{Binding childRelation2}"
ItemTemplate="{StaticResource PropTemplate}">
<!--*****Style qui desactive les enfants...*****-->
<HierarchicalDataTemplate.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsEnabled" Value="false"/>
</Style>
</HierarchicalDataTemplate.ItemContainerStyle>
<TextBlock Text="{Binding Designation}" >
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem Name="SupprArtArbo" Header="Supprimer cet article" Click="btnValidSupprArt_Click"/>
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="TypeArticleTemplate"
ItemsSource="{Binding childRelation}"
ItemTemplate="{StaticResource ArticleTemplate}">
<TextBlock Text="{Binding Nom}"></TextBlock>
</HierarchicalDataTemplate>
</Window.Resources>
<TreeView Name="ArboTypeArt" DockPanel.Dock="Left" Background="Azure" Width="200" Margin="10,10,21,30"
ItemsSource="{Binding TypeArticle}"
ItemTemplate="{StaticResource TypeArticleTemplate}" SelectedItemChanged="ArboChangeSelection">
</TreeView> |
Merci pour votre aide à tous.