WPF组合框无响应

本文关键字:响应 组合 WPF | 更新日期: 2023-09-27 18:21:05

我正在从WCF服务调用数据,并在我的WPF应用程序中填充组合框。一旦我导航到组合框的位置,页面就会冻结,或者有时我可以打开组合框,但它也会冻结?

WPF

 private async void Window_Loaded(object sender, RoutedEventArgs e)
        {
            using (TruckServiceClient TSC = new TruckServiceClient())
            {
                await LoadPhase(TSC, cmbtest);
            }
    private async Task LoadPhase (TruckServiceClient TSC, ComboBox combobox)
    {
        List<Phasetems> phasetems = new List<Phasetems>();
        foreach (var item in await TSC.GetphaseAsync())
            phasetems.Add(new Phasetems { Phase = item.Phase });
        combobox.ItemsSource = (phasetems.ToArray());
        combobox.IsEnabled = true;
        combobox.SelectedIndex = 1;
    }
    public class Phasetems
    {
        public int Id { get; set; }
        public string Phase { get; set; }
        public override string ToString()
        {
            return Phase;
        }
    }

WCF

public List<RPhases> Getphase()
        {
            List<RPhases> phases = new List<RPhases>();
            List<RPhases> dbphase;
            using (TruckDb db = new TruckDb())
                dbphase = db.RPhases.Where(x => x.Id != null).ToList();
            foreach (var a in dbphase)
            {
                var items = new RPhases
                {
                   Id = a.Id,
                   Phase = a.Phase 
                };
                phases.Add(items);
            }
            return phases;
        }

WPF组合框无响应

您发布的代码是正确的,并且没有创建ui阻塞行为(据我所见)。

确保没有其他东西阻塞ui线程。在没有服务调用的情况下尝试它,看看它是否仍然阻止它。

您可以使用Visual Studio break功能进入正在运行的代码并找到它的位置。