如何重新填充ListBox而不因SelectedItem无效而导致InvalidOperation异常



我有一组ObservableCollections,它被用来以ListBoxes的形式向用户提供选择。当用户登录时,这些是基于来自服务器的XML数据填充的

在UI中,这些集合被绑定到例如ListBox;

public constructor() {
    listBox.ItemsSource = App.Current.myCollection;

注销时,用户会返回到第一个页面(我转到登录页面,并删除OnNavigatedTo中的所有后台条目)。

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

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

有什么更优雅的方法吗?

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

最新更新