이 같은 시도 뭔가를 부여 - 애니메이션 그리드를 바인딩하기 전에 완료 될 때까지 기다려야하는 couroutine를 사용
private IEnumerator<IResult> ViewModelStartup()
{
yield return new WaitForAnimation("AnimationName");
BindData();
}
(주 - 당신은 데이터 비동기를로드 할 수 있지만, 단지 그것을 할당하지 마십시오) 다음
때 양식로드 :
private void OnViewAttached()
{
Coroutine.BeginExecute(ViewModelStartup(), new ActionExecutionContext() { View = this.GetView() });
}
(위의 코드를하지 않을 수 있습니다 100 % ... 내가 생각 View
에서 FrameworkElement
해야합니다 필요에 따라 캐스트하거나 래퍼 클래스를 만듭니다.
coroutine을 구현하면 뷰의 이름이 지정된 애니메이션을 검색하고 콜백을 시작하기 전에 완료 될 때까지 기다립니다. 애니메이션을 찾을 수없는 경우 콜백을 시작해야합니다. couroutine은 여러보기에서 사용할 수 있습니다.
당신이 바인딩 된 데이터 따라서 UI 스레드가 잠금을 렌더링 그리드로 실행하는 것처럼
http://caliburnmicro.codeplex.com/wikipage?title=IResult%20and%20Coroutines&referringTitle=Documentation
는 소리 (
IResult
를 구현해야합니다 코 루틴은 정보에 대한 CM의 코드 플렉스 사이트의 문서를 보라) 로드가 적다. 코 루틴을 사용하여 애니메이션이 완료 될 때까지 기다린 다음 데이터를로드하거나 바인딩하는 것이 좋습니다. – Charleh