Bonjour à tous !
Je fais face à un probleme assez deroutant.
probleme :
J'ai redéfini un style pour un CalendarDayButton.
jusqu'ici tout va bien. Mais lorsque j'essai d'acceder a mon control GRID dans le code behind. Impossible
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<Window.Resources> <Style x:Key="myStyleDayButtonCalendar" TargetType="{x:Type CalendarDayButton}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type CalendarDayButton}"> <Grid Name="gridCalendar"> <ContentControl Margin="5,1,5,1" Content="{TemplateBinding Content}"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </Window.Resources> <Grid x:Name="LayoutRoot" Background="White"> <Calendar CalendarDayButtonStyle="{StaticResource myStyleDayButtonCalendar}" Name="myCalendar" SelectedDatesChanged="Calendar_SelectedDatesChanged_1" /> </Grid>
Ma grid est toujours NULL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void Calendar_SelectedDatesChanged_1(object sender, SelectionChangedEventArgs e) { Grid gridInTemplate = (Grid)myCalendar.Template.FindName("gridCalendar", myCalendar) as Grid; }
j'ai alors rajouté un bouton pour voir le comportement sur un autre control.
Code Behind :
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 <Window.Resources> <Style x:Key="myStyleButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid Name="myButton"> <Ellipse Fill="DarkBlue"></Ellipse> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </Window.Resources> <Grid x:Name="LayoutRoot" Background="White"> <Calendar CalendarDayButtonStyle="{StaticResource myStyleDayButtonCalendar}" Name="myCalendar" SelectedDatesChanged="Calendar_SelectedDatesChanged_1" /> <Button Style="{StaticResource myStyleButton}" Name="myButton2" Margin="92,99,518,338" Click="myButton2_Click_1"></Button> </Grid>
Et ici ma Grid est non NULL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void myButton2_Click_1(object sender, RoutedEventArgs e) { Grid gridInTemplate = (Grid)myButton2.Template.FindName("myButton", myButton2); }
Je comprends absolument pas pourquoi dans le cas de dayButtonCalendar le control grid est null. Pourtant il me semble avoir fait la meme chose.
Si quelqu'un peut m'aider sur ce probleme. J'aimerais éviter un VisualTreeHelper.
J'ai également essayé myCalendar.ApplyTemplate();
Merci d'avance !






Répondre avec citation


Partager