Silverlight 5领域模型事件处理程序被增量地调用



Ok…下一个问题。我正在使用Silverlight 5 C# 2012,并且已经到了我可以使用一点帮助的地步。我使用域模型来调用方法来返回信息,并且我发现,如果我多次点击相同的按钮,方法调用将以增量方式发生。第一次点击一次,第二次点击两次,第三次点击三次,等等。

请查看下面的简单代码,如果你能提供任何关于为什么会发生这种情况的见解,我将非常感激。

在服务层:

接口:

[OperationContract]
string GetEnteredString(string strText);
类:

public string GetEnteredString(string strText)
{
    return "You entered: " + strText;
}

在Silverlight应用程序中:

private void btnGetText_Click(object sender, RoutedEventArgs e)
{
    service.GetEnteredStringCompleted += new EventHandler<CARE_WCF.GetEnteredStringCompletedEventArgs>(service_GetEnteredStringCompleted);
    service.GetEnteredStringAsync(txtTester.Text);
}
private void service_GetEnteredStringCompleted(object sender, CARE_WCF.GetEnteredStringCompletedEventArgs e)
{
    MessageBox.Show(e.Result.ToString());       
}

乍一看,这似乎非常直接,但是对GetEnteredString方法的调用只是在自身之上堆叠。我认为这是因为Click事件中的+=,但我可能错了。

提前感谢您的任何见解!我真的很感激。Eric

您必须取消订阅已完成功能中的事件,如:

service.GetEnteredStringCompleted -= service_GetEnteredStringCompleted;

相关内容

  • 没有找到相关文章

最新更新