次のようなことを試してみてください。グリッドをバインドする前に、アニメーションが完了するのを待つためにコルーチンを使用します。
private IEnumerator<IResult> ViewModelStartup()
{
yield return new WaitForAnimation("AnimationName");
BindData();
}
(注 - データを非同期にロードできますが、割り当てないでください)
次に、フォームが読み込まれると:
private void OnViewAttached()
{
Coroutine.BeginExecute(ViewModelStartup(), new ActionExecutionContext() { View = this.GetView() });
}
(上記のコードは100%ではないかもしれません...必要に応じてキャストするか、ラッパークラスを作成する必要View
があると思います)FrameworkElement
ActionExecutionContext
コルーチンの実装はWaitForAnimation
、名前付きアニメーションのビューを検索し、それが完了するのを待ってからコールバックを起動します。アニメーションが見つからない場合は、おそらくコールバックを起動する必要があります。コルーチンは複数のビューで使用できます。
(コルーチンは実装する必要IResult
があり、情報については CM codeplex サイトのドキュメントを参照してください)
http://caliburnmicro.codeplex.com/wikipage?title=IResult%20and%20Coroutines&referringTitle=Documentation