我正在使用MVVM架构。我创建了一个包含按钮控件的用户控件。 我希望在使用此用户控件的页面中捕获按钮控件的单击事件。这该怎么做? Plase help :))
答案 0 :(得分:4)
按钮具有Command属性。您应该通过绑定到ViewModel公开的ICommand来使用它而不是Click事件。
编辑:
两种可能性:
1)MVVM-way:在UserControl的ViewModel上拥有该命令的属性,然后从您使用的页面的ViewModel中设置该属性。
2)非MVVM方式(尽管你可以将它与1结合使用):在UserControl上为该命令设置一个依赖项属性,在UserControl的XAML中绑定该命令。然后,您可以从使用页面绑定到此依赖项属性。
答案 1 :(得分:2)
您可以在更高的父控件上定义事件:
通常你会:
<Grid>
<Button Click="SomeMagicalEventHandler" />
</Grid>
但您也可以按如下方式在Grid上定义事件:
<Grid Button.Click="SomeMagicalEventHandler">
<Button />
</Grid>
当然,只要它没有在您的事件处理程序(arguments.Handled = true;
)中处理,它就会向上冒泡您的可视树,直到它到达您的页面!
希望这有帮助!