Bonjour à tous,

J'écris aujourd'hui pour un conseil.

J'ai une application WPF C# avec binding, conçue d'un ScrollViewer, dans lequel j'ai un ItemsControl avec le binding de ma liste remplie avec une classe, dans cet ItemsControl j'ai un ItemsControl.ItemTemplate dans lequel J'ai un DataTemplate, et pour terminer à l'intérieur j'ai un Border puis une Grid.

Ma liste est donc conçue avec une grille de type Grid sur mon binding :

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<ScrollViewer Name="svList" VerticalScrollBarVisibility="Auto" Grid.Row="2" Grid.ColumnSpan="3" HorizontalAlignment="Center">
            <ItemsControl x:Name="lvDataBinding" Foreground="AliceBlue" ItemsSource="{Binding LstAvis}" Margin="0" ScrollViewer.CanContentScroll="True" VirtualizingPanel.IsVirtualizing="True" VerticalAlignment="Top">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Border BorderBrush="White" BorderThickness="1" CornerRadius="3" Margin="0.5" Background="{Binding scbColorCurrentSelected}" Opacity="{Binding dblOpacityCurrent}" HorizontalAlignment="Left" VerticalAlignment="Top">
                            <Grid Width="1920" Height="100" Margin="0.1" Background="Transparent" Tag="{Binding strNumAvis}" >
                                <Grid.Style>
                                    <Style TargetType="{x:Type Grid}">
                                        <Style.Triggers>
                                            <Trigger Property="IsMouseOver" Value="False">
                                                <Setter Property="Opacity" Value="1"></Setter>
                                            </Trigger>
                                            <Trigger Property="IsMouseOver" Value="True">
                                                <Setter Property="Opacity" Value="0.8"></Setter>
                                            </Trigger>
                                        </Style.Triggers>
                                    </Style>
                                </Grid.Style>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="133*"/>
                                    <ColumnDefinition Width="165*"/>
                                    <ColumnDefinition Width="214*"/>
                                    <ColumnDefinition Width="379*"/>
                                    <ColumnDefinition Width="50*"/>
                                    <ColumnDefinition Width="100*"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>
                                <UniformGrid Background="Gray" Opacity="0.0" Grid.Column="0" Grid.Row="0" Grid.RowSpan="5" Grid.ColumnSpan="6" Margin="0,0,0,0"></UniformGrid>
                                <UniformGrid Grid.Column="0" Grid.Row="0" Grid.RowSpan="5" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.ColumnSpan="1">
                                    <TextBlock Text="{Binding strCurrentDateTracking}" Foreground="{Binding scbColortxtCurrentDateTracking}"  FontSize="36" TextAlignment="Center" HorizontalAlignment="Left" />
                                </UniformGrid>
                                <UniformGrid Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Center">
                                    <TextBlock Text="{Binding strNameClient}" Foreground="White" FontSize="24" TextAlignment="Left" VerticalAlignment="Center" Margin="0,0,-300,0" HorizontalAlignment="Left" Width="465"/>
                                </UniformGrid>
                                <UniformGrid Grid.Column="1" Grid.Row="3" Grid.RowSpan="2" VerticalAlignment="Center">
                                    <TextBlock Text="{Binding strDateEndAvis}" Foreground="White" FontSize="18" TextAlignment="Center" Margin="0,0,-78,0" HorizontalAlignment="Left" Width="85"/>
                                </UniformGrid>
                                <UniformGrid Grid.Column="1" Grid.Row="1" Grid.RowSpan="3" VerticalAlignment="Center" Grid.ColumnSpan="1">
                                    <TextBlock Text="{Binding strNumProject}" FontSize="18" Foreground="White"  TextAlignment="Left"  HorizontalAlignment="Left"/>
                                </UniformGrid>
                                <UniformGrid Grid.Column="2" Grid.Row="3" Grid.RowSpan="2" VerticalAlignment="Center" Grid.ColumnSpan="1">
                                    <TextBlock Text="{Binding strzzTypeAig}" Foreground="White" FontSize="22" TextAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Left"/>
                                </UniformGrid>
                                <UniformGrid Grid.Column="3" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Center">
                                    <TextBlock Text="{Binding strNumInterv}" Foreground="White" FontSize="26" TextAlignment="Left" Width="200"/>
                                </UniformGrid>
                                <UniformGrid Grid.Column="3" Grid.Row="1" Grid.RowSpan="3" VerticalAlignment="Center">
                                    <TextBlock Text="{Binding strIntervLibelle}" Foreground="White" FontSize="22" TextAlignment="Left" Margin="0,0,0,-30" TextWrapping="Wrap" />
                                </UniformGrid>
                                <UniformGrid Grid.Column="4" Grid.Row="0" Grid.RowSpan="4" Grid.ColumnSpan="1">
                                    <Image Width="44">
                                        <Image.Style>
                                            <Style TargetType="{x:Type Image}">
                                                <Setter Property="Source" Value="{Binding strImageToDisplay}"/>
                                            </Style>
                                        </Image.Style>
                                    </Image>
                                </UniformGrid>
                                <UniformGrid Grid.Column="5" Grid.Row="1" Grid.RowSpan="2" VerticalAlignment="Center">
                                    <TextBlock Text="{Binding strCurrentTimeInterv}" Foreground="White" FontSize="32" TextAlignment="Center" HorizontalAlignment="Left" Width="80"/>
                                </UniformGrid>
                            </Grid>
                        </Border>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <UniformGrid Columns="1"/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
            </ItemsControl>
        </ScrollViewer>
Actuellement, pour le détail d'une ligne, je récupère le Tag que j'ai mis sur mon objet Grid et je parcours ma liste, je récupère les détails et j'ouvre une nouvelle fenêtre WPF par dessus la première (pas très propre, pas très joli).

Ce que je souhaiterais c'est au clic de ma ligne afficher les détails en dessous par exemple, comme on peut le voir ici : http://www.wpf-tutorial.com/datagrid...l/details-row/ (sauf que c'est avec une DataGridView ce qui n'est pas mon cas)

J'aimerais un truc comme un ruban qui s'ouvrirait au clic, ou comme un popup !

Pour l'instant j'ai fait une "bidouille" en ajoutant une ligne dans ma grille principale, et j'ai ajouté une grille sur cette ligne que j'affiche ou non et redimensionne. Ça fonctionne pas mal sauf qu'au premier click ça me créé un espace entre toutes mes lignes, tous les éléments ne restent pas collés l'un à l'autre.

Que pouvez-vous me conseiller ? Merci par avance