Bonjour,
J'ai une application (MVVM) qui possède une liste de listes avec des checkbox.
J'ai un bouton permettant de mettre à jour les checkbox a true puis a false.
Voici mon problème
lorsque je clique sur le bouton, l'application met à jour que les informations affichés. (j'ai donc un problème de rafraichissement.)
Voici la structure de ma liste c# que je ne peux modifier car elle provient d'une assembly.
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 public class Point { public string Libelle { get; set; } public Boolean Check { get; set; } } public class SousCat { public string Libelle { get; set; } public SousCat() { Points = new List<Point>(); } public List<Point> Points { get; set; } }
J'ai ensuite un ViewModel
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 //Propriété public RelayCommand rcSelectColonne { get; set; } private Boolean selectCheck; private List<SousCat> _sousCategories; public List<SousCat> SousCategories { get { return _sousCategories; } set { _sousCategories = value; RaisePropertyChanged("SousCategories"); } } //Constructeur rcSelectColonne = new RelayCommand(() => SelectColonne()); //Méthode public void SelectColonne() { SousCategories.SelectMany(l => l.Points).ToList().ForEach(x => x.Check = selectCheck); selectCheck= !selectCheck; }
Et voici le code XAML
Code xaml : 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 <Grid DataContext="{Binding Source={StaticResource Locator}}" > <Grid.RowDefinitions> <RowDefinition/> <RowDefinition Height="25"/> </Grid.RowDefinitions> <ListView ItemsSource="{Binding Main.SousCategories}" IsSynchronizedWithCurrentItem="True" ScrollViewer.HorizontalScrollBarVisibility="Hidden"> <ListView.View> <GridView> <GridView.ColumnHeaderContainerStyle> <Style> <Setter Property="UIElement.Visibility" Value="Collapsed"/> </Style> </GridView.ColumnHeaderContainerStyle> <GridViewColumn Width="100" x:Name="ColCategorie" > <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Margin="2, 0, 0, 0" Foreground="Red" Width="{Binding ActualWidth, ElementName=ColCategorie}" Text="{Binding Libelle}"/> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn x:Name="ColPointControle"> <GridViewColumn.CellTemplate> <DataTemplate> <ListView x:Name="lvPointsControle" BorderThickness="1, 0" ItemsSource="{Binding Points}"> <ListView.View> <GridView AllowsColumnReorder="False"> <GridView.ColumnHeaderContainerStyle> <Style> <Setter Property="UIElement.Visibility" Value="Collapsed"/> </Style> </GridView.ColumnHeaderContainerStyle> <GridViewColumn Width="100" x:Name="ColPoint" > <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Margin="2, 0, 0, 0" Foreground="Green" Width="{Binding ActualWidth, ElementName=ColPoint}" Text="{Binding Libelle}"/> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Width="100" x:Name="ColCheck" > <GridViewColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding Check}"/> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> <Button Content="MAJ" Grid.Row="1"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding Main.rcSelectColonne}"/> </i:EventTrigger> </i:Interaction.Triggers> </Button> </Grid>
J'ai besoin de votre aide car je ne m'en sort pas.
Partager