【发布时间】:2016-02-08 05:57:09
【问题描述】:
我正在对 wcf 服务方法进行asynchronous 调用,并在Button 点击时生成了Completed 事件:
private void OnSearchProductClick(object sender, RoutedEventArgs e)
{
service.GetProductsCompleted += new EventHandler<GetProductsCompletedEventArgs>(webService_GetProductsCompleted);
ProductType productType = (ProductType)cboProductType.SelectedItem;
_productTypeID = productType.ProductTypeID;
service.GetProductsAsync(txtName.Text, txtCode.Text, _productTypeID);
}
问题是,webService_GetProductsCompleted 事件被多次调用。当click Button 第一次被调用时,当我点击第二次时被调用两次,第三次被调用时被调用三次,依此类推。这是一种非常不寻常的行为。为什么会发生,我该如何解决?
这里是webService_GetProductsCompleted 事件:
public void webService_GetProductsCompleted(object sender, CatalogueServiceReference.GetProductsCompletedEventArgs e)
{
if (e.Result.Count != 0)
{
PagedCollectionView pagingCollection = new PagedCollectionView(e.Result);
pgrProductGrids.Source = pagingCollection;
grdProductGrid.ItemsSource = pagingCollection;
pgrProductGrids.Visibility = Visibility.Visible;
}
}
【问题讨论】: