我希望将绑定RelayCommand绑定到Button Click事件(我知道我可以绑定到命令属性但我想绑定到click事件) 我怎么能这样做?我使用了这段代码但没有工作:
private void Button_Clicked(object sender, RoutedEventArgs e) {
FrameworkElement fe=sender as FrameworkElement;
((FirstViewModel)fe.DataContext).ShowSecondViewCommand();
}
我的一些个人控件没有此属性(命令)所以我无法将命令绑定到命令属性
答案 0 :(得分:0)
假设你有正确的xaml绑定命令。以下代码将执行分配给按钮的命令:
private void Button_Clicked(object sender, RoutedEventArgs e) {
var button = sender as Button;
if(button.Command != null){
button.Command.Execute(null);
}
}
答案 1 :(得分:0)
您需要使用InvokeCommandAction
类来执行此操作,或使用MVVMLight中的EventToCommand
类
<Button xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding Path=SomeCommand, Mode=OneWay}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
老实说,这不是最佳做法。您的控件是否可以简单地公开Command属性?