我是WP7.1的新手。我正在开发聊天应用程序,因为有像朋友一样的屏幕,在那个屏幕上它就像1000多个朋友那样,我们绑定到longlistselector使用sqlite。
主要问题是,我们有一个API用于调用朋友的更新,如(displayname,profile picture等),我正在处理API数据并将数据绑定到longlistselector,在绑定时,我无法滚动longlistselecor和屏幕上的任何其他按钮。
我使用Deployment.Current.Dispatcher.BeginInvoke(()=> {Binding to})绑定数据;和Dispatcher.BeginInvoke(()=> {Binding to})和BackgroundWorker(我试过很多方法)。
请建议任何解决方案绑定没有令人不安的用户界面。
提前致谢。
- 钱德拉
答案 0 :(得分:0)
每当您在屏幕上推送数据时(通过XAML {Binding}或直接访问页面的UI元素),都需要在UI线程上完成。虽然UI线程忙于处理代码或由于代码而重绘UI,但UI会冻结。
这意味着您需要使BeginInvoke()内的所有内容尽可能简短有效。但是,您还需要尽可能少地调用BeginInvoke()。找到这些之间的平衡将决定用户界面的体验速度。
在LongListSelector的情况下,我发现一次添加50个项目是有效的,等待半秒并添加接下来的50个项目。您的里程可能会有所不同。