[WPF] DataGridComboBoxColumn Binding
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:
1 2 3 4 5 6
|
public class DataGridFilter
{
public string Key { get; set; }
public string Value { get; set; }
} |
Mon 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
| //....
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:
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?