我的UserControl中有一个按钮。我在同一页面上有三个UserControl实例。
如何在内部公开按钮的click事件,以便为UserControl的每个实例分配不同的事件。
我认为这与暴露DependencyProperty背后的概念类似,但我不明白如何为事件做这件事。
感谢。
答案 0 :(得分:4)
我通常会向用户控件添加一个具有相同名称(和相同参数)的事件,并订阅子控件的原始事件,因此我可以传递事件:
public partial class ClickEventControl : UserControl
{
public event EventHandler<RoutedEventArgs> Click;
public ClickEventControl()
{
InitializeComponent();
}
private void aButton_Click(object sender, RoutedEventArgs e)
{
if (Click != null)
{
Click(sender, e);
}
}
}
如果有更通用的方法,我也会感兴趣。