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.