Binding 设置新对象时Windows Phone绑定丢失

Binding 设置新对象时Windows Phone绑定丢失,binding,windows-phone-8,Binding,Windows Phone 8,启动时,我的应用程序将从UI的xml文件加载数据。我面临的问题是在我的数据之前加载UI,而当源代码更新时,UI的绑定丢失 如果我在设置datacontext绑定之前在主页面的构造函数中加载数据,它会工作,但在完成绑定时UI会冻结 Stream readStream = await localFolder.OpenStreamForReadAsync("queue.xml"); using (StreamReader rd = new StreamR

启动时,我的应用程序将从UI的xml文件加载数据。我面临的问题是在我的数据之前加载UI,而当源代码更新时,UI的绑定丢失

如果我在设置datacontext绑定之前在主页面的构造函数中加载数据,它会工作,但在完成绑定时UI会冻结

            Stream readStream = await localFolder.OpenStreamForReadAsync("queue.xml");
            using (StreamReader rd = new StreamReader(readStream))
            {
                {
                    App.ViewModel.Queue = xs2.Deserialize(rd) as ObservableCollection<ItemViewModel>;
                    rd.Close();
                }
            }
Stream readStream=wait localFolder.OpenStreamForReadAsync(“queue.xml”);
使用(StreamReader rd=新StreamReader(readStream))
{
{
App.ViewModel.Queue=xs2.反序列化(rd)为ObservableCollection;
rd.Close();
}
}
如果我将其加载到后台工作程序中,它将是平滑的,UI不会冻结,但App.Viewmodel.Queue将被分配给反序列化对象,然后UI绑定将从原始对象丢失


我可以让绑定自动更新到新对象吗?此加载函数来自外部类,因此一旦加载项源,我就无法重置它。

我已经找到了在我的情况下有效的方法。它不一定是最优雅的,但它完成了任务

我将WebBrowser的默认不透明度设置为0。然后,我为LoadCompleted事件附加一个事件处理程序:

private void browser_Post_LoadCompleted(object sender, NavigationEventArgs e)
{
    browser_Post.Opacity = 1;
}

现在,在加载新的HTML页面之前,我将不透明度设置回0,以便在渲染新HTML时隐藏浏览器,从而不会出现背景闪烁。当HTML加载完成时,事件将触发,新的HTML页面将按预期显示。

队列
属性集上引发
属性更改
事件将通过数据绑定机制使绑定到
队列
的UI控件自动更新。以下是如何引发事件的示例:

private ObservableCollection<ItemViewModel> _queue;
public ObservableCollection<ItemViewModel> Queue 
{
    get
    {
        return _queue;
    }
    set
    {
        if (value != _queue)
        {
            _queue = value;
            NotifyPropertyChanged("Queue");
        }
    }
}
private-observeCollection\u队列;
公共可观测收集队列
{
收到
{
返回队列;
}
设置
{
如果(值!=\u队列)
{
_队列=值;
NotifyPropertyChanged(“队列”);
}
}
}