Bonjour,

Je cherche à lier un combobox de ma datagrid à une ObservableCollection , 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
        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);
 
            }
 
        }
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
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");
                }
            }
        }
XAML :
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>
ObservableCollection<Object2> change en fonction de la valeur de Property1 (cette partie fonctionne) et doit normalement alimenter ma ComboBox
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