Tôi có một ứng dụng WPF bằng cách sử dụng mô hình MVVM mà đôi khi phải hiển thị một waitcursor khi nó đang bận làm một cái gì đó người dùng phải chờ đợi. Nhờ sự kết hợp của các câu trả lời trên trang này: display Hourglass when application is busy, tôi có một giải pháp hầu như hoạt động (mặc dù nó không thực sự là MVVM trong tinh thần). Bất cứ khi nào tôi làm điều gì đó tốn nhiều thời gian trong viewmodels của tôi, tôi làm điều này:Làm thế nào để hiển thị một waitcursor khi các ứng dụng WPF là bận databinding
using (UiServices.ShowWaitCursor())
{
.. do time-consuming logic
this.SomeData = somedata;
}
(ShowWaitCursor() trả về một IDisposable cho thấy waitcursor cho đến khi nó đang được xử lý) Dòng cuối cùng trong ví dụ của tôi là nơi tôi thiết lập một số tài sản. Thuộc tính này bị ràng buộc trong XAML của tôi, ví dụ: như thế này:
<ItemsControl ItemsSource="{Binding SomeData}" />
Tuy nhiên, vì đây có thể là một danh sách dài các đối tượng và đôi khi với bảng dữ liệu phức tạp, vv. Kể từ khi ràng buộc này diễn ra bên ngoài của tôi bằng cách sử dụng báo cáo waitcursor sẽ biến mất trước khi chờ đợi thực sự là hơn cho người dùng.
Vì vậy, câu hỏi của tôi là làm thế nào để làm một waitcursor trong một ứng dụng MVVM WPF mà mất databinding vào tài khoản?
lớn thực hiện! Điều này làm việc hoàn hảo cho tôi khi thời gian tiêu thụ đang xảy ra trong hoạt động ràng buộc giao diện người dùng của bên thứ ba; khi tôi không thực sự biết khi nào nó được thực hiện. Cảm ơn bạn! –
Tôi sẽ thay đổi điều này để sử dụng một số thay vì một bool. Bằng cách đó, nhiều địa điểm có thể nói rằng họ cần con trỏ đợi và nó sẽ vẫn còn cho đến khi tất cả chúng đều từ bỏ nó. –
Rất tuyệt! Cảm ơn bạn! – Dummy01