Bonsoir,

Voilà, il se trouve que je suis confronter à un dilemmes , tout d'abord je tiens à préciser que j'utilise le mvvm light toolkit , voilà donc j'ai à ma disposition un usercontrol dans cet usercontrol je créé un bouton et je voudrais liée sont évènement "Click" a une méthode définis dans mon MainViewModel tout cela à l'aide de binding ^^.

UserControl :

Donc j'ai commencé par faire une DependencyProperty exposant la classe RelayCommand et binder mon bouton dessus :

Bouton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<Button Content="Connect" Command="{Binding ConnectionRelayCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"/>
DependencyProperty :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public static readonly DependencyProperty ConnectionBindingProperty =  
    DependencyProperty.Register("ConnectionRelayCommand", typeof(RelayCommand), typeof(ConnectionControl), new UIPropertyMetadata(null));
 
public RelayCommand ConnectionRelayCommand
{
      get { return (RelayCommand)GetValue(ConnectionBindingProperty); }
      set { SetValue(ConnectionBindingProperty, value); }
}
MainViewModel:

Créer une instance de RelayCommand dans mon MainViewModel :
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
 
public RelayCommand ButtonClick
{
       get;
       set;
}
 
public void Test()
{
       System.Windows.MessageBox.Show("test");
       ButtonClick.RaiseCanExecuteChanged();
}
 
public MainViewModel()
{
        ButtonClick = new RelayCommand(Test);       
}
MainVue :

Et enfin binder celle-ci a la propriété exposé de mon UserControl:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<View:ConnectionControl x:Name="BookMaker1" Height="100" VerticalAlignment="Top" BookMaker="Book" ConnectionRelayCommand="{Binding ButtonClick}"/>
Mais malheureusement ça ne marche pas .

C'est ce pourquoi je sollicite votre aide, je vous remercie d'avance.

Quentin.