Windows phone 7 如何重新填充列表框而不因SelectedItem无效而导致InvalidOperation异常?

Windows phone 7 如何重新填充列表框而不因SelectedItem无效而导致InvalidOperation异常?,windows-phone-7,Windows Phone 7,我有一组ObservableCollections,它被用来以列表框的形式向用户展示选择。当用户登录时,根据来自服务器的XML数据填充这些数据 在UI中,这些集合绑定到例如列表框 public constructor() { listBox.ItemsSource = App.Current.myCollection; 注销时,用户将返回到第一页(我将转到登录页,并删除OnNavigatedTo中的所有返回条目) 问题是:在重新登录时,似乎很难以一种合理的方式重新填充集合,从而使列表框

我有一组ObservableCollections,它被用来以列表框的形式向用户展示选择。当用户登录时,根据来自服务器的XML数据填充这些数据

在UI中,这些集合绑定到例如列表框

public constructor() {
    listBox.ItemsSource = App.Current.myCollection;
注销时,用户将返回到第一页(我将转到登录页,并删除OnNavigatedTo中的所有返回条目)

问题是:在重新登录时,似乎很难以一种合理的方式重新填充集合,从而使列表框具有一种瞬态(您第一次登录时就是这样)

另一个令人惊讶的发现是,即使页面尚未导航到,绑定到我的集合的列表框也会在手动清除和重新填充集合时更改选择


有什么更优雅的方法吗?

找到了罪魁祸首;在构造函数中设置数据绑定时,可能会过早地应用对集合的更改。正确的方法是在Loaded(加载)或OnNavigated(导航)中分配ItemsSource(项目资源)

您能给我们看一下您的代码吗?很难确切知道您的问题是什么。感谢您指出代码的不足,提取一个最小的示例实际上为我解决了这个问题;)