1

LoaderCM ドキュメントに含まれる実装を使用するコルーチンがあり、それを使用してページにビジー インジケーターを表示するとします。

ここで、ユーザーがデータ ストアに既に存在するオブジェクトを追加しようとしたとします。当然、コルーチン中に「保存」操作は失敗します。つまり、コルーチンは実行をキャンセルします。

これが発生した場合、列挙子はLoader.Hide()ビジー インジケーターを非表示にするための呼び出しに到達IResultしません。

例:

    public IEnumerator<IResult> SaveData()
    {
        yield return Framework.Coroutines.Loader.Show("Saving Data");
        yield return new Framework.Coroutines.SaveOperation(SomeObject);
        yield return Framework.Coroutines.Loader.Hide();
    }

コルーチンが 2 番目のステップで正当に失敗した場合、ビジー インジケーターが画面に表示されたままになり、ユーザーがエラーを修正して再保存を試みる機会がなくなります (そして、基になる UI とのやり取りが停止します!)

コルーチンの実装を拡張し、エラーが発生したときに実行を許可するかどうかを示すフラグを持つイテレータを作成することもできます。

4

1 に答える 1

1

You could also use Caliburn.Micro Action Filters. See SetBusyAttribute. The declarative style of attributes is transparent and makes the code easier to manage.

于 2013-01-27T10:25:03.743 に答える