在wpf中,如何处理由使用该用户控件的页面中的用户控件内的按钮引发的事件

在wpf中,如何处理由使用该用户控件的页面中的用户控件内的按钮引发的事件,wpf,mvvm,event-handling,wpf-controls,Wpf,Mvvm,Event Handling,Wpf Controls,我使用的是MVVM架构。我创建了一个包含按钮控件的用户控件。 我希望在使用此用户控件的页面中捕获button控件的单击事件。如何做到这一点?Plase help:)按钮具有命令属性。您应该通过绑定到ViewModel公开的ICommand来使用它,而不是单击事件 编辑: 两种可能性: 1) MVVM方式:在UserControl的ViewModel上为命令设置一个属性,然后使用页面的ViewModel设置该属性 2) 非MVVM方式(尽管您可以将其与1结合使用):在命令的UserControl上

我使用的是MVVM架构。我创建了一个包含按钮控件的用户控件。
我希望在使用此用户控件的页面中捕获button控件的单击事件。如何做到这一点?Plase help:)

按钮具有命令属性。您应该通过绑定到ViewModel公开的ICommand来使用它,而不是单击事件

编辑:

两种可能性:

1) MVVM方式:在UserControl的ViewModel上为命令设置一个属性,然后使用页面的ViewModel设置该属性


2) 非MVVM方式(尽管您可以将其与1结合使用):在命令的UserControl上有一个dependency属性,您可以在UserControl的XAML中绑定到该属性。然后,您可以从“使用”页绑定到此依赖项属性。

您可以在更高的父控件上定义事件:

通常情况下,您会:

<Grid>
      <Button Click="SomeMagicalEventHandler" />
</Grid>

但您也可以在网格上定义事件,如下所示:

<Grid Button.Click="SomeMagicalEventHandler">
      <Button />
</Grid>

当然,只要它没有在事件处理程序中处理(
arguments.handled=true;
),它就会向上冒泡到您的可视化树,直到到达您的页面


希望这有帮助

如何使ICommand调用页面中使用此用户控件的方法?