Bonjour à tous,

Je viens de découvrir MVVM et j'ai décidé de refaire d'anciens programmes proprement.

Mon probleme est le suivant : je n'arrive pas à binder une DependencyProperty d'un usercontrol avec une liste de ma vue-model.

Voici la déclaration de la DependencyProperty dans mon UserControl
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public static readonly DependencyProperty ListeFichiersProperty = DependencyProperty.Register("ListeFichiers", typeof(ObservableCollection<Fichier>), typeof(ScanFichier));
 
public ObservableCollection<Fichier> ListeFichiers
 {
            get { if (GetValue(ListeFichiersProperty) == null) return null; return (ObservableCollection<Fichier>)GetValue(ListeFichiersProperty); }
            set { SetValue(ListeFichiersProperty, value); }
}
Le binding cote xaml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<local:ScanFichier x:Name="USScan" ListeFichiers="{Binding Path=ListeFichier, Mode=TwoWay}"></local:ScanFichier>
Le binding de la VM sur code (Qui marche je pense)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
public AddFilm()
{
       InitializeComponent();
       this.DataContext = new ViewModel.VMTraitementFilms(this);
}
Et pour finir la creation de la VM
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public VMTraitementFilms(Window w)
{
      _window = w;
      ListeFichier = new ObservableCollection<Fichier>();
 
      //var tmp = (AddFilm)w;
      //tmp.USScan.ListeFichiers = ListeFichier;
}
Si j'enlève les commentaires de la creation de la VM la dependency a une valeur, mais sinon le binding cote xaml ne fonctionne pas et la valeur reste nulle.

J'ai essayé avec une ObservableCollection<string> mais le resultat est identique.

J'ai une commande bindée qui fonctionne donc je supose que le bind V - VM est OK

Quelqu'un aurait-il une idée svp ?

Merci d'avance