我有一个非常简单的任务,可以像这样加载一些数据:
async Task<List<Invoice>> GetInvoices()
{
var invoices = await Task.Run(() => db.Invoices.AsNoTracking().ToList());
return invoices;
}
搭配进度条使用的最佳方法是什么?我不需要加载百分比(尽管这很有用),我只需要在加载数据的开始和结束时显示/隐藏进度条。有没有办法创建完成或完成的方法?
我对异步/等待非常陌生,所以请戴上手套!
参考方案
假设在某些UI事件处理程序中调用了GetInvoices
,并且有一些名为ProgressBar
的进度条控件,这非常简单:
private async void OnButton1Click(..)
{
ProgressBar.IsIndeterminate = true;
var result = await GetInvoices();
ProgressBar.IsIndeterminate = false; // Maybe hide it, too
// TODO: Do stuff with result
}
如果要显示实际进度,请查看Progress<T>
和IProgress<T>
。
我这里没有什么代码int b=3; b=b >> 1; System.out.println(b); 它可以完美工作,但是当我将变量b更改为byte,short,float,double时,它包含错误,但是对于变量int和long来说,它可以完美工作,为什么它不能与其他变量一起工作? 参考方案 位移位运算符(例如>>)与任何整数类型兼…
WPF WebBrowser甚至使用ObjectForScripting在单独的线程上锁定UI - javascript在与WPF Web浏览器控件绑定的ObjectForScripting上调用方法时,网页UI锁定会出现一个奇怪的问题。进一步的研究使我们意识到整个UI(包括WPF应用程序而不是WebBrowser)都已锁定。使用的技术是带有Caliburn.Micro和Autofac的WPF。我在COM可见类上使用方法来推送到Caliburn.Micro提供的事件聚合器。进…
WPF MVVM中的动态TabControl - c#我几周前开始使用WPF(在C#中),现在我需要一些高级帮助来使用tabcontrol。首先,我正在使用MVVM(模型视图ViewModel)模式来设计我的应用程序,并且我有一个约束,即试图不要在文件(初始化xaml文件)后面的代码中添加代码。现在,我的问题是在MainWindow视图(窗口)中动态创建新的tabItem,当单击按钮(例如“新建选项卡”按钮)时…
WPF-将窗口大小设置为子用户控件大小 - c#我有一个选项卡控件,该控件动态地填充有包含各种大小的用户控件的选项卡。打开选项卡后,我希望窗口自动调整大小,使其在活动用户控件下有意义。有一种干净的方法可以做到这一点吗?我正在使用标准的mvvm模式。 参考方案 在Window类上使用SizeToContent属性。<Window x:Class="WpfApplication1.MainWi…
获取ListBoxItem的索引-WPF - c#如何获取ListBoxItem的索引?ListBox通过XmlDataProvider绑定到XML节点的集合。 参考方案 我有一个类似的问题,得到了回答here基本上,您将ListBox的AlternationCount设置为非常高的值,并绑定到每个项目上的AlternationIndex<ListBox AlternationCount="…