MVCパターンを使用してWPFアプリケーションを使用しているときに、ユーザーが待たなければならないときにwaitcursorを表示することがあります。このページの回答の組み合わせがあります:display Hourglass when application is busy、私はほとんどの作品を(実際にはMVVMではありませんが)解決しています。 私は私のviewmodelsで何か時間のかかる操作を行うたびに、私はこれを実行します。WPFアプリケーションがビジー状態のときにwaitcursorを表示する方法データバインディング
using (UiServices.ShowWaitCursor())
{
.. do time-consuming logic
this.SomeData = somedata;
}
(ShowWaitCursorは()それは、処分されるまでwaitcursorを示しIDisposableインターを返します)ここで、I私の例の最後の行は、いくつかのプロパティを設定します。このプロパティは、XAMLでバインドされています(例:しかし
<ItemsControl ItemsSource="{Binding SomeData}" />
、これはオブジェクトの長いリスト可能性があり、時にはなどの複雑なdatatemplates、と実際の結合とレンダリングいつかはかなりの時間がかかるためこのような。このバインドは私のusingステートメントの外で行われるので、waitcursorは実際の待機がユーザのために終わる前に消え去ります。
私の質問は、データバインディングを考慮したWPF MVVMアプリケーションでwaitcursorを実行する方法です。
グレート実装:
は、ここに私のソリューションです!これは、サードパーティのUIバインディング操作で時間の消費が起こっているときには完璧に機能します。いつ私は本当にそれが完了したか分からない。ありがとうございました! –
これをboolではなくcountを使用するように変更します。そうすれば、複数の場所で待機カーソルが必要だと言うことができ、すべてが放棄されるまでそれが残されます。 –
ニース!ありがとうございました! – Dummy01