bonjour tout le monde
J'ai une petite problématique à vous soumettre :
J'ai une listview avec en itemsource une observablecollection<T> avec une checkbox et une combobox :
Mon xaml
Mon ViewModel.Cs
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 <ListView BorderThickness="0" Grid.Row="2" Margin="0" Height="300" Width="auto" ItemsSource="{Binding ListDeperdition, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, IsAsync=True}" SelectedItem="{Binding SelectedItem ,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True" Background="{x:Null}"> <ListView.View> <GridView ColumnHeaderContainerStyle="{StaticResource MasqueHeader}"> <GridViewColumn Width="80"> <GridViewColumn.CellTemplate> <DataTemplate> <CheckBox Width="64" HorizontalAlignment="Center" IsChecked="{Binding SecheServiette, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Width="150" DisplayMemberBinding="{Binding Piece}" /> <GridViewColumn Width="80"> <GridViewColumn.CellTemplate> <DataTemplate> <CheckBox Width="64" HorizontalAlignment="Center" IsChecked="{Binding Regroupement}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Width="70"> <GridViewColumn.CellTemplate> <DataTemplate> <ComboBox Width="54" HorizontalAlignment="Center" ItemsSource="{Binding ListMarque, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedMarque , Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Width="70"> <GridViewColumn.CellTemplate> <DataTemplate> <ComboBox Width="54" HorizontalAlignment="Center" ItemsSource="{Binding ListModele, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedModele , Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </ListView.View> </ListView>
A l'ouverture
mon Model
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 private ObservableCollection<Deperdition> _ListDeperdition public ObservableCollection<Deperdition> ListDeperdition { get { return _ListDeperdition; } set { if (value != _ListDeperdition) { _ListDeperdition = value; OnPropertyChanged("ListDeperdition"); } } } public void ReloadMarqueRadiateurInListDerper() { if (SelectedMarqueRadiateur !=null) { foreach (var item in ListDeperdition) { if (!item.SecheServiette) { item.ListMarque = ListMarqueRadiateur; item.SelectedMarque = SelectedMarqueRadiateur; } } } }
Ce que j'aurais voulu c'est que quand ma checkbox isChecked = true, c'est de changer mon ItemSource de ma combobox ListMarque
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 public class Deperdition { public static Action OnChanged; [XmlAttribute] public bool SecheServiette { get { return _SecheServiette; } set { _SecheServiette = value; OnChanged?.Invoke(); } } public ObservableCollection<string> ListMarque { get { return _ListMarque; } set { _ListMarque = value; // OnChanged?.Invoke(); } }
de passer de ça :
en ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ListMarque = ListMarqueRadiateur; SelectedMarque = SelectedMarqueRadiateur;
j'ai essayé avec le selectedItem du listview, ça ne marche pas il me fait une erreur type StackOVerFlow, j'ai essayé avec le OnChanged, cela ne marche pas non plus avec la même erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ListMarque = ListMarqueSS; SelectedMarque = SelectedMarqueSS;
pourriez vous me donner un petit coup de main s'il vous plait
PS : Je n'ai pas mis l'ensemble du code si vous voulez plus de détail demandez moi.
Partager