2013-02-25 6 views
0

페이지에서 "연락처"개체의 ObserveableCollection을 구현하고 longlistselector의 항목 소스로 설정했습니다. "Contact"Object의 모든 속성은 INotifyPropertyChanged를 구현합니다. ObserveableCollection에 추가되면 목록과 속성이 잘 표시됩니다. 그러나 코드에서 속성 중 하나를 변경할 때마다 페이지를 떠나서 돌아올 때까지 변경 사항이 UI에 반영되지 않습니다. 따라서 databound 속성은 실시간으로 업데이트되지 않습니다. XAML 페이지에서Databound UI가 업데이트되지 않음

:

public ObservableCollection<Contact> contacts = new ObservableCollection<Contact>(); 

Contact[] data = ContactHandler.Singleton().GetContacts().Values.OrderBy(x => x.DisplayName.ToLower()[0]).ToArray(); 
     int dataCount = data.Length; 

     this.LayoutRoot.Dispatcher.BeginInvoke(() => 
     { 
      for (int x = 0; x < data.Length; x++) 
      { 
       contacts.Add(data[x]); 
      } 
}); 
여기

나는 "연락처"의 "하이라이트"속성 업데이트 곳이다 :

private void contactList_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     Contact contact = contactList.SelectedItem as Contact; 

     if (contact != null) 
     { 
      Debug.WriteLine(contact.DisplayName + " is: " + contact.Highlight); 

      string uid = contact.UserID; 
      if (uids.Contains(uid)) 
      { 
       uids.Remove(uid); 
       Deployment.Current.Dispatcher.BeginInvoke(() => 
       { 
        contact.Highlight = Visibility.Collapsed; 
       }); 
      } 
      else 
      { 
       uids.Add(uid); 
       Deployment.Current.Dispatcher.BeginInvoke(() => 
       { 
        contact.Highlight = Visibility.Visible; 
       }); 
      } 

}

답변

0

확인을, 그래서 내가 해요 백치.

노동절을 배웠다. 컬렉션 (내 경우에는 Contact)에서 개체를 소유하는 것을 잊지 마십시오. INotifyPropertyChanged를 상속합니다. 나는 그것을 구현했지만 상속하지는 않았다.

관련 문제