Silverlight 为什么在WP7中绑定需要这么长时间?我能看到它的发生
我正在页面的Silverlight 为什么在WP7中绑定需要这么长时间?我能看到它的发生,silverlight,windows-phone-7,binding,Silverlight,Windows Phone 7,Binding,我正在页面的Loaded事件中填充一个列表searchResults 如果加载需要50毫秒,那么当我通过导航返回页面加载页面时,在绑定完成之前的几秒钟内,我将看到前面的搜索结果 a) 在什么情况下,我可以在页面变为可见之前绑定控件?(页面将被导航回,因此不会再次调用构造函数。) b) 有没有办法强制在加载的事件代码中发生绑定?我注意到list1.ItemSource=x绑定似乎是在事件函数超出范围后完成的。就好像他们是在OnIdle中完成的一样 更多关于b)的详细信息 如果我运行以下代码: (I
Loaded
事件中填充一个列表searchResults
如果加载需要50毫秒,那么当我通过导航返回页面加载页面时,在绑定完成之前的几秒钟内,我将看到前面的搜索结果
a) 在什么情况下,我可以在页面变为可见之前绑定控件?(页面将被导航回,因此不会再次调用构造函数。)
b) 有没有办法强制在加载的事件代码中发生绑定?我注意到list1.ItemSource=x
绑定似乎是在事件函数超出范围后完成的。就好像他们是在OnIdle中完成的一样
更多关于b)的详细信息
如果我运行以下代码:
(ItemsControl) lstSearchResults.ItemSource = searchResults;
int iCount = lstSearchResults.Items.Count
无论搜索结果中是否有项目,iCount
都将为零
有没有办法将lstSearchResults
绑定到立即填充的searchResults
OnNavigatedTo事件正在被调用,您可以尝试在那里执行您的工作
我不完全确定您的意思,但是如果您已经在可观察集合和列表框之间进行了绑定,那么您对可观察集合所做的更改将反映在列表框中
1) 将DataContext与viewModel关联,并使用ItemsSource={Binding searchResults}“
2) 在加载的事件上执行lstSearchResults.ItemSource=searchResults;
请注意,如果您的列表是动态的,建议将lis设置为可观察收集
如果搜索结果是高度可变的项,则UI绑定可能需要时间,具体取决于项模板
。要解决此问题,应使用虚拟化StackPanel,它已经是ListBox控件的一部分。因此,如果您已经使用ListBox,则在您的情况下不太可能出现此问题。有关详细信息,请参阅led信息您可以浏览一下。我希望它能有所帮助。(1 | a)是的,这很有效!谢谢!我已经在(2 | b)中添加了更多细节