我有一个带有一个自定义事件的用户控件。如果重要,这是在Windows Phone应用程序中。用户控件的C#中的事件如下所示:
public delegate void TextChangedVoid(string newText)
public event TextChangedVoid TextChanged;
然后我将它添加到我的Window的XAML:
<local:ClientList TextChanged="clist_TextChanged"...
在Page的C#中:
private void clist_TextChanged(string newText)
{
...
}
它看起来很好,但每次我构建我的项目时都会收到此错误:
No overload for 'clist_TextChanged' matches delegate 'TextChangedVoid'.
为什么会这样?我应该在活动中使用字符串以外的类吗?
答案 0 :(得分:0)
原来我应该使用除了字符串之外的类。我创建了一个继承自EventArgs的类来保存字符串变量。这解决了这个问题。看起来像是:
public partial class ClientChangedEventArgs : EventArgs
{
public ClientChangedEventArgs(string mewText)
{
this.NewText = newText;
}
public string NewText;
}
在我的用户控制中:
public delegate void TextChangedVoid(ClientChangedEventArgs e)
public event TextChangedVoid TextChanged;