我的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次 知道为什么会这样吗?
答案 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);
}