Contexte :
Windows XP
Framework 3.5 SP1
Bonjour,
Dans le code XAML ci-dessous, j'ai créé un ListView avec 2 colonnes.
Les entêtes de colonnes ont un aspect dépendant d'un DataTemplate nommé HeaderTemplateButton.
Le DataTemplate correspond au titre de la colonne à gauche et un bouton à droite.
Je veux gérer l'évenement click des entêtes de colonnes en interceptant soit le click sur le bouton, soit le click sur le Header.
Le code de l'évenemement correspond à ceci :
Code c# : 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 ********** void GridViewColumnHeaderClickedHandler(object sender, RoutedEventArgs e) { GridViewColumnHeader headerClicked = e.OriginalSource as GridViewColumnHeader; Button buttonClicked = e.OriginalSource as Button; if (headerClicked != null) { label1.Content = "Colonne cliquée !"; } if (buttonClicked != null) { label1.Content = "Boutton cliqué"; } } **********
Quand je clique sur l'entête, je sait lequel est cliqué (headerClicked).
Par contre, j'aimerais, quand je clique sur le bouton, trouver quel entête est concerné.
Pourriez vous me dire comment on fait ?
Merci d'avance.
Luis.
Code XAML :
Code xml : 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 <Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300"> <Window.Resources> <DataTemplate x:Key="HeaderTemplateButton"> <DockPanel> <TextBlock HorizontalAlignment="Center" Text="{Binding }"/> <TextBlock HorizontalAlignment="Center" Text=" "/> <Button FontFamily="Wingdings" >$</Button> </DockPanel> </DataTemplate> </Window.Resources> <Grid> <ListView Margin="18,18,20,57" Name="listView1" GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler"> <ListView.View> <GridView> <GridViewColumn Header="Col1" Width="100" HeaderTemplate="{StaticResource HeaderTemplateButton}"/> <GridViewColumn Header="Col2" Width="100" HeaderTemplate="{StaticResource HeaderTemplateButton}"/> </GridView> </ListView.View> </ListView> <Label Height="28" Margin="22,0,20,9" Name="label1" VerticalAlignment="Bottom">Label</Label> </Grid> </Window>
Partager