多个silverlight异步调用和组合框源

时间:2014-08-05 08:07:15

标签: c# wcf silverlight asynchronous combobox

我有3个组合框,每个组合框需要不同的来源。对于每个源,我都有WCF服务,并且异步调用每个服务。 我的问题是,当最后一个服务完成时,每个组合框都会被填充,它们都在等待最长的服务。我需要在服务完成后填充组合框。

我的代码:

public ArtiklViewModel Artikl;

public ItemNewEdit(ArtiklViewModel _artikl, bool _edit)
{
        InitializeComponent();

        Artikl = _artikl;

        SifarnikServiceClient service1 = new SifarnikServiceClient();
        service1.GetSifarniksByVrstaAsync(1);
        service1.GetSifarniksByVrstaCompleted += new EventHandler<GetSifarniksByVrstaCompletedEventArgs>(service_GetSifarniks1Completed);

        SifarnikServiceClient service2 = new SifarnikServiceClient();
        service2.GetSifarniksByVrstaAsync(2);
        service2.GetSifarniksByVrstaCompleted += new EventHandler<GetSifarniksByVrstaCompletedEventArgs>(service_GetSifarniks2Completed);

        SifarnikServiceClient service3 = new SifarnikServiceClient();
        service3.GetSifarniksByVrstaAsync(3);
        service3.GetSifarniksByVrstaCompleted += new EventHandler<GetSifarniksByVrstaCompletedEventArgs>(service_GetSifarniks3Completed);
}

    void service_GetSifarniks1Completed(object sender, GetSifarniksByVrstaCompletedEventArgs e)
    {
        combo1.ItemsSource = e.Result.ToList();
        if (Artikl != null)
            combo1.SelectedValue = Artikl.JmjID;
    }

    void service_GetSifarniks2Completed(object sender, GetSifarniksByVrstaCompletedEventArgs e)
    {
        combo2.ItemsSource = e.Result.ToList();
        if (Artikl != null)
            combo2.SelectedValue = Artikl.GrupaID;
    }

    void service_GetSifarniks3Completed(object sender, GetSifarniksByVrstaCompletedEventArgs e)
    {
        combo3.ItemsSource = e.Result.ToList();
        if (Artikl != null)
            combo3.SelectedValue = Artikl.TarifaID;
    }

1 个答案:

答案 0 :(得分:0)

这种事情是基于Xaml的UI(如Silverlight和UWP)的常见问题。问题是标准的Microsoft Selector控件不是异步准备。他们关心ItemsSource和SelectedItem的设置顺序。我昨天提出了一个建议的解决方案。这很复杂,但很全面。你可能想看看。

https://stackoverflow.com/questions/36003805/uwp-silverlight-combobox-selector-itemssource-selecteditem-race-condition-solu

相关问题