Usercontrol RelayCommand Binding
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 :mouarf:, 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:
<Button Content="Connect" Command="{Binding ConnectionRelayCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"/>
DependencyProperty :
Code:
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:
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:
<View:ConnectionControl x:Name="BookMaker1" Height="100" VerticalAlignment="Top" BookMaker="Book" ConnectionRelayCommand="{Binding ButtonClick}"/>
Mais malheureusement ça ne marche pas :cry:.
C'est ce pourquoi je sollicite votre aide, je vous remercie d'avance.
Quentin.