使用Windows Phone 7.1绑定数据而不会干扰UI

时间:2012-09-06 06:39:21

标签: windows-phone-7

我是WP7.1的新手。我正在开发聊天应用程序,因为有像朋友一样的屏幕,在那个屏幕上它就像1000多个朋友那样,我们绑定到longlistselector使用sqlite。

主要问题是,我们有一个API用于调用朋友的更新,如(displayname,profile picture等),我正在处理API数据并将数据绑定到longlistselector,在绑定时,我无法滚动longlistselecor和屏幕上的任何其他按钮。

我使用Deployment.Current.Dispatcher.BeginInvoke(()=> {Binding to})绑定数据;和Dispatcher.BeginInvoke(()=> {Binding to})和BackgroundWorker(我试过很多方法)。

请建议任何解决方案绑定没有令人不安的用户界面。

提前致谢。

- 钱德拉

1 个答案:

答案 0 :(得分:0)

每当您在屏幕上推送数据时(通过XAML {Binding}或直接访问页面的UI元素),都需要在UI线程上完成。虽然UI线程忙于处理代码或由于代码而重绘UI,但UI会冻结。

这意味着您需要使BeginInvoke()内的所有内容尽可能简短有效。但是,您还需要尽可能少地调用BeginInvoke()。找到这些之间的平衡将决定用户界面的体验速度。

在LongListSelector的情况下,我发现一次添加50个项目是有效的,等待半秒并添加接下来的50个项目。您的里程可能会有所不同。