我有一个主 - 详细信息表单,其中master和details属性放在两个单独的表布局中。细节布局最初是隐藏的。
我加载一条记录并显示主属性(使用bindingsource)。
然后,我单击一个按钮以显示详细信息布局。在这样做的过程中,我还异步获取详细信息,如下所示:
private void layoutDetails_VisibleChanged(object sender, EventArgs e)
{
GetDetails();
}
private async void GetDetails()
{
IEnumerable<OrderDetails> details = null;
await Task.Delay(100).ContinueWith(t =>
{
details = orderRequest.GetDetails(order.Id);
});
bindingSourceDetails.DataSource = details;
}
但是,在UI暂时冻结以填充列表视图之前,表单没有足够的时间显示详细信息布局。
表单本身完全显示为在加载表单(用户选择要加载的记录)后很好地显示主属性。然后用户点击按钮切换到详细信息表格布局,这里列表视图会以某种方式暂时冻结,同时检索详细信息行,然后列表视图停靠在表格布局中。
上面不应该解决问题吗?或者是将details
对象绑定到绑定源时导致的问题?