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 :
DependencyProperty :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Button Content="Connect" Command="{Binding ConnectionRelayCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"/>
MainViewModel:
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); } }
Créer une instance de RelayCommand dans mon MainViewModel :
MainVue :
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); }
Et enfin binder celle-ci a la propriété exposé de mon UserControl:
Mais malheureusement ça ne marche pas .
Code : Sélectionner tout - Visualiser dans une fenêtre à part <View:ConnectionControl x:Name="BookMaker1" Height="100" VerticalAlignment="Top" BookMaker="Book" ConnectionRelayCommand="{Binding ButtonClick}"/>
C'est ce pourquoi je sollicite votre aide, je vous remercie d'avance.
Quentin.
Partager