1
我想在一個單獨的線程中綁定一個gridview
。異步等待綁定網格
幾乎每個示例在描述長時間運行的任務時都使用await Task.Delay(10000);
,但我實際上想在此處做一些工作。
如何綁定到網格異步(或任何一般工作)?
private async void BindGrid_Click(object sender, EventArgs e)
{
string result = await BindFileGridTemp();
RadMessageBox.Show(result);
}
public async Task<string> BindFileGridTemp() // Bind Grid
{
// Bind Grid here.........
//this.radGridViewFiles.DataSource = null;
//this.radGridViewFiles.DataSource = MyGlobals.ListOfItemsToControl.ToList()
await Task.Delay(10000); // I dont want this but its on every example for async and await
return "I am finished";
}
將網格綁定到一些東西上(比如一個屬性 - 實現INotifyPropertyChanged),然後你工作,*在* await之後,設置屬性。 –
你不能真正等待數據綁定,因爲它必須在UI線程上運行。您*可以*等待從任何地方提取數據,但實際綁定必須在UI線程上發生 – James
爲其創建新任務不是一個好主意,但您可以嘗試使用公共異步任務 BindFileGridTemp ) this.radGridViewFiles.DataSource = await Task.Run(()=> MyGlobals.ListOfItemsToControl.ToList()); 返回「我完成了」; }' –