Bonjour,
Voilà, j'ai un template qui se trouve dans un ResourceDictionary et qui ajoute des éléments au visuel d'un TreeView. Parmis ces éléments il y a un bouton et j'aimerais savoir comment jouer sur le click de celui-ci.
Merci d'avance.
Bonjour,
Voilà, j'ai un template qui se trouve dans un ResourceDictionary et qui ajoute des éléments au visuel d'un TreeView. Parmis ces éléments il y a un bouton et j'aimerais savoir comment jouer sur le click de celui-ci.
Merci d'avance.
Par code, dans la surcharge de ApplyTemplate de ton contrôle, tu peux récuperer l'instance de ton template et ainsi t'abonner aux events des controles qui composent le template
Désolé mais j'ai pas tout saisi là.
Voici le bout de Template qui m'intéresse:
Le bouton auquel je voudrais ajouter un click est: bClosePopup.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <Style x:Key="{x:Type TreeView}" TargetType="{x:Type TreeView}"> <Setter Property="OverridesDefaultStyle" Value="True" /> <Setter Property="SnapsToDevicePixels" Value="True" /> <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/> <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TreeView}"> <ContentControl x:Name="ccPopupMainMenu"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="25"/> <RowDefinition Height="*"/> <RowDefinition Height="20"/> </Grid.RowDefinitions> <DockPanel x:Name="dpHeader" Grid.Row="0" Background="{DynamicResource VerticalBrush}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="15"/> </Grid.ColumnDefinitions> </Grid> <Label HorizontalAlignment="Center" >Menu Principal</Label> <Button x:Name="bClosePopup" Grid.Column="1" Style="{StaticResource CloseTabItemMouseOver}" /> </DockPanel>
Ce template est dans un ResourceDictionary et est utilisé pour mettre en forme un TreeView contenu dans un control perso.
J'ai essayé ça:
Mais pas moyen de retrouver le cc et donc encore moins mon bouton.....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ControlTemplate ct = mm.Treeview.Template; ContentControl cc = (ContentControl)ct.FindName("ccPopupMainMenu", mm.Treeview); Button btn = (Button)ct.FindName("bClosePopup", cc);
Un petit exemple pour illustrer ce que tu me conseil parce que je n'arrive pas bien à comprendre... désolé![]()
Dans ton contrôle perso, fais une surcharge de la méthode ApplyTemplate (ou OnApplyTemplate) (cela dot être possible) et met ton code dedans
Pour le bouton de mon Template, j'ai utilisé une RoutedCommand et cela fonctionne, mon nouveau problème, et oui ça serait trop beau si tout marchait du premier coup!!!!, est de pouvoir attribuer des commandes à des Items créés à partir d'un HierarchicalDataTemplate.
Je m'explique:
Je veux créer un cadre qui permette de créer des menus dynamiquement grâce à ce code:
Cela fonctionne très bien, mais comment ajouter une command à certains éléments (je peux ajouter un attribut command aux éléments bindés mais je ne vois pas comment les liers à la méthode à appeler.....).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <HierarchicalDataTemplate DataType="{x:Type local:ActionItem}" ItemsSource="{Binding}"> <WrapPanel> <Image Height="18" Width="18" ="{Binding Path=Image}" > <TextBlock Text="{Binding Path=Text}" /> </WrapPanel> </HierarchicalDataTemplate>
Merci d'avance
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager