【发布时间】:2019-11-27 05:56:11
【问题描述】:
我有一个由视图模型属性 (Photos) 提供的 ListBox,它是包含图像文件路径的对象的 ObservableCollection。 ListBox 显示图像,可以有很多:
查看:
<ListBox ItemsSource="{Binding Path=Photos}"
SelectionChanged="PhotoBox_SelectionChanged">
...
</ListBox>
后面的代码(可以改进为异步运行...):
void RefreshPhotoCollection (string path) {
Photos.Clear ();
var info = new DirectoryInfo (path);
try {
foreach (var fileInfo in info.EnumerateFiles ()) {
if (FileFilters.Contains (fileInfo.Extension)) {
Photos.Add (new Photo (fileInfo.FullName));
}
}
}
catch (Exception ex) when (ex is IOException || ex is UnauthorizedAccessException) {
...
}
}
在运行 RefreshPhotoCollection 时,我已经设法通过使用涉及 IDisposable 的 this method 显示等待光标:
using (this.BusyStackLifeTracker.GetNewLifeTracker())
{
// long job
}
但是当视图被通知集合更改时,光标会在此方法结束时重置为指针。 ListBox 然后呈现自己,但完成时不显示等待光标。我有问题。
如何让ListBox 显示等待光标,直到更新完成?
【问题讨论】: