异步等待绑定网格

用户1438082

我正在尝试gridview在单独的线程中绑定a

几乎每个示例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"; 

 }
斯蒂芬·克莱里

我试图在单独的线程中绑定gridview。

正如其他人指出的那样,您实际上无法在另一个线程中进行绑定。它必须是UI线程。

几乎每个示例都使用await Task.Delay(10000); 当他们描述一个长期运行的任务时,但是我实际上想在这里做一些工作。

await Task.Delay是的异步等效项Thread.Sleep它只是意味着“将您必须执行的所有异步工作都放在这里”。

我如何绑定到网格异步(或任何常规工作)?

可以这样简单:

public async Task<string> BindFileGridAsync()
{ 
  this.radGridViewFiles.DataSource = await GetMyDatasourceAsync();
  return "I am finished"; 
}

请注意,这与MVVM模式不符。要遵循MVVM模式,请实施Peter Ritchie的建议:将RadGridView.DataSourceXAML属性数据绑定到ViewModel属性,在创建ViewModel时启动异步操作,并使用结果值更新该属性。如果您正在执行异步数据绑定,那么我的博客文章可能会有所帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章