2011-01-31 2 views
0

내 응용 프로그램에 Silverlight 4 및 MVVM 패턴을 사용하고 있습니다. 하나의 페이지에 바인딩 된 목록 상자가 있는데 one.xaml이고보기 모델은 oneviewmodel.cs입니다. 이것은 내 앨범 컬렉션을로드하는 페이지입니다. 그 페이지에 새 앨범을 추가하는 페이지가있는 버튼이 있습니다. 해당 페이지가 two.xaml이고보기 모델이 twoViewModel.cs 인 경우 이 페이지에서 내가 RIA 서비스 전화 : -ObservableCollection <someentity> 새로 고침 없음

context.albums.add(somealbum); 

을하고 changes.The 앨범 추가됩니다 제출하고 난 SQL 서버의 기록을 볼 수 있습니다. 그러나 팝업이 닫히면 내 목록 상자는 여전히 부실 데이터를 표시합니다. 방금 추가 한 새로운 항목을로드하기 위해 서버에 다시 요청해야합니까? 따라서 본질적으로 메시징 패턴을 사용하고 엔티티를 다시로드하기 위해 oneviewmodel.cs을 요청해야합니다. 이 올바른 방법입니까?

이로드 앨범 기관의 내 방법입니다 : -이 숀 Wildermuth와 같은 패턴과 클래스를 사용

var qry = AlbumContext.GetAlbumsQuery(_profile.UserId); 
      AlbumContext.Load<Album>(qry, new Action<System.ServiceModel.DomainServices.Client.LoadOperation<Album>>(albums => { 

       if (GetAlbumsComplete != null) 
       { 

        if (albums.Error == null) 
        { 
         GetAlbumsComplete(this, new EntityResultArgs<Album>(albums.Entities)); 
        } 
        else 
        { 
         GetAlbumsComplete(this,new EntityResultArgs<Album>(albums.Error)); 
        } 
       } 

      }), null); 

.

당신은 다시 서버에서 모든를로드 할 필요가 없습니다

답변

1

:) 사전에 감사합니다,하지만 당신은 당신의 ObservableCollection에 새 앨범을 추가해야합니다. 지금까지는 DomainContext에만 추가했습니다. 다음과 같은 두 가지 옵션 중 하나를 할 수있는 :

1)

collection.Add(somealbum); 

또는

2) 당신이 GetAlbumsComplete()의 ObservableCollection에 채우기 가정으로 컬렉션에 직접 새 앨범을 추가합니다. ObservableCollection이 DomainContext.Albums의 내용으로 채워지도록 해당 부분을 다시 실행하십시오.

관련 문제