Bonjour,
Je cherche à lier un combobox de ma datagrid à une ObservableCollection , mon viewmodel :
avec Object1 :
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 public ViewModel vm { get; set; } public class ViewModel { public ObservableCollection<Object1> Collec1{ get; set; } public ICollectionView CV_Collec1 { get; set; } public ViewModel() { Collec1 = new ObservableCollection<Object1>(); CV_Collec1 = CollectionViewSource.GetDefaultView(Collec1); } }
XAML :
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
42
43 public class Object1 : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public ObservableCollection<Object2> SubCollec { get { return _SubCollec; } set { if (_SubCollec == value) return; _SubCollec = value; OnPropertyChanged("SubCollec"); } } private string _Property1; public string Property1 { get { return _Property1; } set { if (_Property1 == value) return; _Property1 = value; OnPropertyChanged("Property1"); } } private Object2 _SelectedObject; public Object2 SelectedObject { get { return _SelectedObject; } set { if (_SelectedObject == value) return; _SelectedObject = value; OnPropertyChanged("SelectedObject"); } } }
ObservableCollection<Object2> change en fonction de la valeur de Property1 (cette partie fonctionne) et doit normalement alimenter ma ComboBox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <DataGridComboBoxColumn x:Name="CB_1" Header="Column1" DisplayMemberPath="SelectedObject.Name" SelectedValueBinding="{Binding SelectedObject}"> <DataGridComboBoxColumn.ElementStyle > <Style TargetType="ComboBox"> <Setter Property="ItemsSource" Value="{Binding DataContext.Collec1.SubCollec, RelativeSource={RelativeSource AncestorType={x:Type DataGrid }}}"></Setter> </Style> </DataGridComboBoxColumn.ElementStyle> <DataGridComboBoxColumn.EditingElementStyle > <Style TargetType="ComboBox"> <Setter Property="ItemsSource" Value="{Binding DataContext.Collec1.SubCollec, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"></Setter> </Style> </DataGridComboBoxColumn.EditingElementStyle> </DataGridComboBoxColumn>
SelectedObject est destiné a représenter la valeur selectionnée.
La combobox reste vide et j'ai le message suivant :
System.Windows.Data Error: 40 : BindingExpression path error: 'SubCollec' property not found
Pouvez-vous svp m'aider?
D'avance merci
Partager