我似乎在Xaml中遇到了暴露事件的问题。我已经像下面这样在自定义用户控件中声明了一个公共事件处理程序。
public sealed partial class FoodItemControl : UserControl
{
public event EventHandler<StringEventArgs> thumbnailClicked;
public FoodItemControl()
{
InitializeComponent();
(this.Content as FrameworkElement).DataContext = this;
}
private void Thumbnail_Tapped(object sender, TappedRoutedEventArgs e)
{
var handler = thumbnailClicked;
if (handler != null)
{
handler(this, new StringEventArgs());
}
}
}
但是,当我在XAML中为其分配事件时,暴露的事件处理程序找不到。例如:
<local:FoodItemControl thumbnailClicked="SOMETHING" />
我在找到的示例中是否遗漏了什么?
编辑:看起来我的问题是,我将事件定义为 EventHandler< StringEventArgs >。一旦我更改为简单的 EventHandler,它就可以工作。即
public event EventHandler thumbnailedClicked;
然而,我仍然不太明白为什么?