我如何重用事件处理程序?

时间:2011-05-10 18:01:52

标签: c# wpf events

我有一个代码:

private void border1_PreviewGiveFeedback(object sender, GiveFeedbackEventArgs e)
{
    // some code
}

mainwindow.xaml:

<Border BorderBrush="Silver" PreviewGiveFeedback="border1_PreviewGiveFeedback"
        Name="border1" />

现在我想重用border2里面的border1中的事件处理程序(没有在border2和cs文件中写入相同的代码)这里写的内容:

<Border Name="border2" />

3 个答案:

答案 0 :(得分:2)

我认为与您在第一个边框中使用的相同

<Border PreviewGiveFeedback="border1_PreviewGiveFeedback" Name="border2" />

答案 1 :(得分:1)

PreviewGiveFeedback属性只是要求具有特定签名的事件处理程序。实际上你可以将它命名为Potatoes_AreTasty__YUM,只要它具有正确的签名,它就能很好地运作。

因此,在border2中使用它的方法是给它与border1相同的事件方法。您还可以重命名该函数,以指示它不是专门用于border1而是用于通用边框预览事件处理程序。

答案 2 :(得分:0)

你可以做同样的事情:

<Border Name="border2" PreviewGiveFeedback="border1_PreviewGiveFeedback" />

会起作用。但是,在这种情况下,您应该考虑重命名事件处理程序方法。