我似乎在 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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我在 xaml 中为其分配一个事件时,无法找到暴露的事件处理程序。IE
<local:FoodItemControl thumbnailClicked="SOMETHING" />
Run Code Online (Sandbox Code Playgroud)
我在我发现的示例中遗漏了一些东西吗?
编辑:我的问题似乎是我将事件定义为 EventHandler< StringEventArgs >。一旦我将其更改为简单的 EventHandler Ie,它就起作用了
public event EventHandler thumbnailedClicked;
Run Code Online (Sandbox Code Playgroud)
但我还是不太明白为什么?