Silverlight方法完成运行更多次

时间:2014-03-16 17:54:56

标签: .net wcf silverlight

我的silverlight应用程序出了问题。我正在使用WCF和Bing地图。我在地图上显示了一些数据,这些数据是由WCF从数据库中获取的。问题是完整的方法运行次数多。 我称之为asynch方法

private void vsetciBTN_Click(object sender, RoutedEventArgs e)
{
  if (krajCBB.SelectedIndex < 0)
     client.VratVsetkychPacientovCompleted += client_VratVsetkychPacientovCompleted;
        client.VratVsetkychPacientovAsync(krajCBB.SelectedIndex < 0 ? -2 : kraje[krajCBB.SelectedIndex].Id,
            okresCBB.SelectedIndex < 0 ? -1 : okresy[okresCBB.SelectedIndex].Id, "Vsetci pacienti");
}

和答案

void client_VratVsetkychPacientovCompleted(object sender, ServiceMaps.VratVsetkychPacientovCompletedEventArgs e)
{
  surad = e.Result;
  zobrazsuradnice(surad)
}

所以当我点击按钮时它正在工作并且方法zobrazsuradnice(surad);显示数据,但如果我再次执行,则client_VratVsetkychPacientovCompleted运行2次,如果再次运行3次 知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

试试这样。

client.VratVsetkychPacientovCompleted += client_VratVsetkychPacientovCompleted;    
private void vsetciBTN_Click(object sender, RoutedEventArgs e)
{
    if (krajCBB.SelectedIndex != 0 && krajCBB.SelectedIndex > 0)
    client.VratVsetkychPacientovAsync(krajCBB.SelectedIndex < 0 ? -2 : kraje[krajCBB.SelectedIndex].Id,
        okresCBB.SelectedIndex < 0 ? -1 : okresy[okresCBB.SelectedIndex].Id, "Vsetci pacienti");
}

//已完成的事件

void client_VratVsetkychPacientovCompleted(object sender, ServiceMaps.VratVsetkychPacientovCompletedEventArgs e)
{
    surad = e.Result;
    zobrazsuradnice(surad);
}