我有一些用户控件。层次结构如下:
A包含B
B包含C
在我的C控件中,我有一个按钮。当我点击它想要我的活动
public event EventHandler Print;
通过raise然后我想控制A来捕获这个事件。我怎么能这样做?
编辑1:
我想在User Control C的ViewModel上提升我的事件
答案 0 :(得分:2)
有两个主题可以帮助您满足您的需求:
这两种机制都是专门为wpf的层次结构而构建的。
阅读两者,它们将帮助您的wpf体验无法估量。
编辑:更有帮助的东西。将Button.Click =“”放在要捕获事件的控件上。您可以使用按钮的Tag属性来存储标识信息,以便事件处理程序知道单击了正确的按钮。
<Grid Button.Click="Button_ClickHandler">
<Button Tag="PrintButton/>
</Grid>
在用户控件的代码中,您将需要名为Button_ClickHandler的处理程序。
上述方法使用路由器事件。我真的建议使用命令。
答案 1 :(得分:0)
我想你想看看bubbling events。
更新:我没有看到wpf标签,你应该看routed events
答案 2 :(得分:0)
您可以像这样包装事件:
class B
{
private A a;
public event EventHandler Print
{
add { a.Print += value; }
remove { a.Print -= value; }
}
}