0
我在頁面上實現了「Contact」對象的ObserveableCollection,並將其設置爲longlistselector的itemsource。 「聯繫人」對象的所有屬性均實現INotifyPropertyChanged。一旦添加到ObserveableCollection中,列表和屬性顯示正常。但是,無論何時我更改代碼中的某個屬性,更改都不會反映在UI中,直到我離開頁面並返回。因此,數據綁定屬性不會實時更新。Databound用戶界面未更新
從XAML頁面:
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;
});
}
}