使用事件触发器单击按钮时调用命令

时间:2018-02-23 15:41:20

标签: c# wpf mvvm

点击Button时,我想调用一种方法。这就是我所做的。在XAML中,我有

<Button Content="HELLO" Width="40" Height="20">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <i:InvokeCommandAction Command="{Binding InteractionCommand}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Button>

在ViewModel中,我有

class MainWindowViewModel : Prism.Mvvm.BindableBase
{
    public ICommand InteractionCommand { get; private set; }
    public MainWindowViewModel()
    {
        this.InteractionCommand = new DelegateCommand<object>(OnInteraction);
    }

    public void OnInteraction(object obj)
    {
        System.Diagnostics.Debug.WriteLine("Hello");
    }
}

有谁可以告诉我我哪里错了,因为这不起作用。 谢谢。

P:S:我知道我可以在Button内绑定命令而不使用事件触发器。

1 个答案:

答案 0 :(得分:0)

如果您已将DataContext的{​​{1}}设置为视图模型类的实例,那么您的代码应该可以正常工作:

Button

以下仅设置实际运行应用程序时未应用的设计时间 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DataContext = new MainWindowViewModel(); } }

DataContext

它仅用于Visual Studio设计器的上下文中。