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;
});
}
}