Bonjour à tous,
j'ai besoin d'aide sur un problème de treeview, j'ai une classe VTSuiviBudjetAnnee qui possède une liste de VTSuiviBudjetMois qui elle même possède une liste d'organismeCollecteur.
Je souhaite afficher dans les items parent les montants par mois et dans les items enfant de la treeview je veux afficher la liste des organisme et leur montant versé (1 par item), ci dessous mon 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
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
79
80
81
82
83
84
85
86
87
88 <UserControl.Resources> <local:ConverterVisibility1 x:Key="ConverterVisibility" /> <LinearGradientBrush x:Key="TreeViewItemBackground" EndPoint="1,0.5" StartPoint="0,0.5"> <!--<GradientStop Color="#FFA6CAEC" Offset="0"/>--> <GradientStop Color="#FFAFD0EE" Offset="1"/> <!--<GradientStop Color="#FFE4EFF8" Offset="0.498"/>--> </LinearGradientBrush> <DataTemplate x:Key="OrganismeCollecteurTemplate"> <Border BorderBrush="AliceBlue" BorderThickness="1" CornerRadius="10" Background="{StaticResource TreeViewItemBackground}" > <StackPanel Orientation="Horizontal" Width="Auto"> <Label Width="160" Content="{Binding Path=NomOrganisme}" Foreground="DimGray" FontWeight="Medium" /> <Label Width="90" Content="{Binding Path=MontantMoisPercu}" ToolTip="{Binding Path=ToolTipMoisDeclare}" Foreground="DimGray" FontWeight="Medium" /> <Label Width="60" FontWeight="Medium" ToolTip="VT versé" /> <TextBox Width="60"></TextBox> <Label Width="60" ToolTip="VT reconstitué" ></Label> </StackPanel> </Border> </DataTemplate> <DataTemplate x:Key="MontantMoisTemplate"> <Border BorderBrush="AliceBlue" BorderThickness="1" CornerRadius="10" Background="{StaticResource TreeViewItemBackground}" > <StackPanel Orientation="Horizontal" Width="Auto"> <Label Width="160" Content="{Binding Path=MoisLong}" Foreground="DimGray" FontWeight="Medium" /> <Label Width="90" Content="{Binding Path=MontantMoisPercu}" ToolTip="{Binding Path=ToolTipMontantMois}" Foreground="DimGray" FontWeight="Medium" /> </StackPanel> </Border> </DataTemplate> <HierarchicalDataTemplate x:Key="MoisTemplate" ItemsSource="{Binding VTSuiviBudgetAnnee}" ItemTemplate="{StaticResource MontantMoisTemplate}"> <Border x:Name="MoisTemplateBorder" BorderBrush="AliceBlue" BorderThickness="1" CornerRadius="10" Background="{StaticResource TreeViewItemBackground}" > <StackPanel Orientation="Horizontal"> <Label Width="80" Content="{Binding Path=MoisLong}" FontWeight="Medium" FontFamily="Arial" /> <Label Width="80" Content="{Binding Path=MontantMoisPercu}" FontWeight="Medium" FontFamily="Arial" /> <Label Width="60" FontWeight="Medium" ToolTip="VT versé"></Label> <Label Width="60" ToolTip="VT reconstitué"></Label> </StackPanel> </Border> </HierarchicalDataTemplate> <HierarchicalDataTemplate x:Key="OCTemplate" ItemsSource="{Binding VTSuiviBudgetMois}" ItemTemplate="{StaticResource OrganismeCollecteurTemplate}"> <Border x:Name="MoisTemplateBorder" BorderBrush="AliceBlue" BorderThickness="1" CornerRadius="10" Background="{StaticResource TreeViewItemBackground}" > <StackPanel Orientation="Horizontal"> <Label Width="80" Content="{Binding Path=NomOrganisme}" FontWeight="Medium" FontFamily="Arial" /> <Label Width="80" Content="{Binding Path=MontantPercu}" FontWeight="Medium" FontFamily="Arial" /> <Label Width="60" FontWeight="Medium" ToolTip="VT versé"></Label> <Label Width="60" ToolTip="VT reconstitué"></Label> </StackPanel> </Border> </HierarchicalDataTemplate> </UserControl.Resources> ..... <StackPanel Grid.Row="1" Grid.Column="0" Orientation="Vertical"> <TreeView Name="treeViewVersement2" Width="500" Margin="0,0,0,0" ItemsSource="{Binding}" ItemTemplate="{StaticResource MoisTemplate}" TreeViewItem.Expanded="treeViewVersementItem_Expanded" TreeViewItem.Collapsed="treeViewVersementItem_Collapsed"> </TreeView> </StackPanel> <Label Grid.Row="0" Grid.Column="1" FontWeight="Bold"></Label> <StackPanel Grid.Row="1" Grid.Column="1" Orientation="Vertical"> <TreeView Name="treeViewVersement1" Width="500" Margin="0,0,0,0" ItemsSource="{Binding}" ItemTemplate="{StaticResource MoisTemplate}" TreeViewItem.Expanded="treeViewVersementItem_Expanded" TreeViewItem.Collapsed="treeViewVersementItem_Collapsed"/> </StackPanel>
et ci-dessous mon code behind:
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
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
79
80
81
82
83public partial class SuiviBudgetReconstitutionVT : UserControl { private VTSuiviBudgetAnnee _suiviBudgetAnneSelection; private VTSuiviBudgetAnnee _suiviBudgetAnnePrec; public SuiviBudgetReconstitutionVT() { InitializeComponent(); this.Loaded += new RoutedEventHandler(SuiviBudget_Loaded); } /// <summary> /// Chargement de la page /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void SuiviBudget_Loaded(object sender, RoutedEventArgs e) { try { // Tab VT perçu string annee = DateTime.Now.Year.ToString(); AfficherListeAnnee(annee); } catch (Exception erreur) { throw new Exception("Impossible de charger les données " + erreur.Message); } } private void treeViewVersementItem_Expanded(object sender, RoutedEventArgs e) { } private void treeViewVersementItem_Collapsed(object sender, RoutedEventArgs e) { } private void listViewAnneeVersement_SelectionChanged(object sender, RoutedEventArgs e) { CME_VT_MontantVerse selectAnne = (CME_VT_MontantVerse)listViewAnneeVersement.SelectedValue; string annee = selectAnne.annee.ToString(); string annePrec = (Convert.ToInt32(annee) - 1).ToString(); _suiviBudgetAnneSelection = new VTSuiviBudgetAnnee(annee); _suiviBudgetAnnePrec = new VTSuiviBudgetAnnee(annePrec); InitialiserTreeView(); } #region Methode private void AfficherListeAnnee(string pAnnee) { ObservableCollection<CME_VT_MontantVerse> listeVersementParOCAnneeMois = new ObservableCollection<CME_VT_MontantVerse>(); for (int i = Convert.ToInt32(pAnnee); i > 2005; i--) { listeVersementParOCAnneeMois.Add(new CME_VT_MontantVerse(1, i.ToString(), "1")); } listViewAnneeVersement.DataContext = listeVersementParOCAnneeMois; } private void InitialiserTreeView() { treeViewVersement2.Items.Clear(); treeViewVersement1.Items.Clear(); treeViewVersement1.DataContext = _suiviBudgetAnneSelection; treeViewVersement2.DataContext = _suiviBudgetAnnePrec; for (int i = 0; i < _suiviBudgetAnneSelection.ListeMois.Count; i++) { treeViewVersement1.Items.Add(_suiviBudgetAnneSelection.ListeMois[i]); } for (int i = 0; i < _suiviBudgetAnnePrec.ListeMois.Count; i++) { treeViewVersement2.Items.Add(_suiviBudgetAnnePrec.ListeMois[i]); } }
j'affiche bies tous les items parents (mois et montant versé) mais les items enfant ne s'affichent pas. J'ai cherché depuis 2 jours sur des forums mais pas de solutions intéressante.
cordialement







Répondre avec citation
Partager