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;
}
您发布的代码是正确的,并且没有创建ui阻塞行为(据我所见)。
确保没有其他东西阻塞ui线程。在没有服务调用的情况下尝试它,看看它是否仍然阻止它。
您可以使用Visual Studio break功能进入正在运行的代码并找到它的位置。