Bonjour,
Je cherche désespérément à binder une DataGridComboBoxColumn sur ensemble de string.. Ce sujet revient souvent sur le net mais je n'y parviens pas
J'ai une datagrid qui m'affiche des infos, et j'essaie de créer une deuxième datagrid afin de pouvoir y ajouter des filtres sur la première (une DGComboBoxColumn pour sélectionner la colonne de la datagrid à filtrer, et une DGTextColumn pour rentrer la valeur du filtre).
Voici un peu de code:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class DataGridFilter { public string Key { get; set; } public string Value { get; set; } }
Mon ViewModel:
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 //.... private ObservableCollection<string> _baseFilters; private ObservableCollection<DataGridFilter> _filters; public ObservableCollection<DataGridFilter> Filters { get { return _filters; } set { _filters = value; OnPropertyChanged("Filters"); } } public ObservableCollection<string> BaseFilters { get { return _baseFilters; } set { _baseFilters = value; OnPropertyChanged("BaseFilters"); } } public MainWindowVM() { this.BaseFilters = new ObservableCollection<string>(MainWindowVM.DataDisplayed.SelectMany(x => x.Select(y => y.Key))); //Initialisation des filtres possibles this.Filters = new ObservableCollection<DataGridFilter>(); } //....
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <DataGrid ItemsSource="{Binding Filters}" AutoGenerateColumns="False" CanUserAddRows="True"> <DataGrid.Columns> <DataGridComboBoxColumn Header="Colonne" ItemsSource="{Binding BaseFilters}" SelectedItemBinding="{Binding Key}"/> <DataGridTextColumn Header="Filtre" Binding="{Binding Value}"/> </DataGrid.Columns> </DataGrid>
La combobox de la datagridcolumn est toujours vide quand j'essaie d'ajouter une nouvelle ligne à la datagrid..
Auriez-vous une idée?
Partager