2013-08-27 3 views
1

Webservice에서 데이터를 가져 와서 표시하는 Windows Phone 8 응용 프로그램을 개발하고 있습니다.업데이트 LongListSelector MVVM이없는 ItemSource

은 내가 더 많은 항목을 표시 할에 LongListSelector에 바인딩 알림 목록이있을 때 마지막에 사용자가 스크롤 : 무한 목록입니다.

내가 많이 검색하지만 내 경우에 어떤 해결책을 발견하지 않은, 그들은 모두 모델, 뷰, 뷰 모델 아키텍처에 대해 말한다. 내 목록을 ObservableCollections로 변경하면 많은 작업을 반복해야합니다.

내 실제 코드는 다음과 같습니다

private async void NotificationList_ItemRealized(object sender, ItemRealizationEventArgs e) 
{ 
    if (NotificationList.ItemsSource == null) return; 
    int currentItemsCount = NotificationList.ItemsSource.Count; 
    if (currentItemsCount >= _offsetKnob && e.Container != null) 
    { 
     var list = await LoadDataAsync(++page); 
     foreach (var notification in list) 
     { 
      NotificationList.ItemsSource.Add(notification); 
     } 
    } 
} 

요소 목록에 추가하지만 표시되지 않습니다, 즉시이 LongListSelector에 추가됩니다으로 새 항목을 표시 할 수있는 솔루션이있다?

+1

사용'ObservableCollection에 는'*하지 * MVVM의 이익을 위해, 그것은 WPF의 이익을 위해입니다. 이러한 컬렉션을 사용하면 데이터 변경 내용을 UI에서 자동으로 업데이트 할 수 있습니다. – Sheridan

+0

실제 컨테이너 (List ObservableCollection이 아닌 )를 사용하여 목록에 요소를 추가하는 것을 UI에 알리는 방법이 있습니까? 난 당신이 WPF를 사용하려고하는 경우 – Oussama

+3

.. ObservableCollection에를 사용 할 의무거야 되지 다음 경우, 단지'ObservableCollection에 '클래스를 사용하여 익숙해. – Sheridan

답변

1

목록에서 ObservableCollections로 변경하는 것이 왜 어려운가요? ObservableCollection은 목록이 백그라운드에서 업데이트되고 업데이트에 UI를 알리고 자 할 때 올바른 방법입니다. 웹 서비스 (샘플의 500 픽셀)에서 증분로드 데이터에 2 개의 샘플을 작성했습니다.

Windows Phone Series – Incremental Loading

당신이 ObservableCollection에 변경하지 않으려면

Windows Phone Series – Incremental Loading multiple data sources inside a Pivot는, 당신은 UI를 수동으로 바인딩을 업데이트해야합니다.