如何在不由于SelectedItem无效导致InvalidOperation异常的情况下重新填充ListBox?

时间:2012-02-22 10:25:28

标签: windows-phone-7

我有一组ObservableCollections正在其他方面使用,以ListBoxes的形式向用户提供选择。这些是基于用户登录时来自服务器的XML数据填充的。

在用户界面中,这些集合被绑定到例如一个ListBox;

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

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

问题在于:当重新启动时,似乎很难以一种理智的方式重新填充集合,这使得列表框具有瞬态(当您第一次登录时会执行此操作)。

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

任何更优雅方法的想法?

1 个答案:

答案 0 :(得分:0)

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

中分配ItemsSource