Problème MAJ Listview de ListView
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:
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:
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:
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.