Silverlight 3 응용 프로그램을 만드는 중 실수하고 있습니다. 다음 시나리오에 대한 높은 수준의 지침이 필요합니다.Silverlight 3 응용 프로그램 설계
사용자가 많은 정보를 입력하는 페이지가 있습니다. 페이지 하단에는 기본적으로 제출 버튼이 있습니다.
클릭하면 ria 서비스를 통해 데이터베이스에 정보가 커밋되고 사용자에게 새 페이지가 전달되도록 정보가 필요합니다.
제출 내 방법은 기본적으로 그래서 다음과 같습니다
void Click(object o, eventArgs e) {
ViewModel.SaveMyStuff();
this.NavigationService.Navigate(MyUri);
}
SaveMyStuff() 메서드는 비동기이기 때문에
에서, 이동 기능은 거의 immediatly 실행됩니다. 그리고 데이터베이스에 대한 커밋이 완전히 완료되지 않은 것으로 보입니다. 페이지 밖으로 이동하면 뷰 모델과 뷰 모델이 언로드됩니다.그래서 기본적으로 리디렉션은 DB 커밋이 완료 될 때까지 발생하지 않으므로 이벤트 처리기를 연결하는 것이 중요하며 모든 것이 엉망이되고 있습니다. 페이지가 다른 페이지 기본 페이지에서 빠져 나갈 수 있는지 여부를 처리하기위한 패턴이나 모범 사례가 있습니까? .. - 리아 서비스의 버그가있을 수 있습니다 보인다
if (ViewModel.RiaDataContext.IsSubmitting) {
Thread.Sleep(500);
}
그러나) 못생긴 해킹 것 같아, 그리고 b)는 그 조건이 결코 거짓 :
는 기본적으로 내가했다 몇 가지 코드를 가지고 있었다 또는 유사합니다.