“我的虚空”没有超载与代表“我的代表”匹配?

时间:2013-07-29 17:05:38

标签: c# silverlight events delegates

我有一个带有一个自定义事件的用户控件。如果重要,这是在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'. 

为什么会这样?我应该在活动中使用字符串以外的类吗?

1 个答案:

答案 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;