C# Windows phone 7将项目异步添加到stackpanel
我想知道是否可以将子元素异步添加到stackpanel(或任何其他元素)。似乎所有项目都是一次呈现的 我是否使用后台工作程序或调度程序并不重要。结果总是一样的-当所有项目都被添加后,它们就会显示出来 我想要的是这样的:C# Windows phone 7将项目异步添加到stackpanel,c#,windows-phone-7,asynchronous,stackpanel,C#,Windows Phone 7,Asynchronous,Stackpanel,我想知道是否可以将子元素异步添加到stackpanel(或任何其他元素)。似乎所有项目都是一次呈现的 我是否使用后台工作程序或调度程序并不重要。结果总是一样的-当所有项目都被添加后,它们就会显示出来 我想要的是这样的: Deployment.Current.Dispatcher.BeginInvoke(() => { foreach (var item in items.Skip(x).Take(pageSize)) { // when this row i
Deployment.Current.Dispatcher.BeginInvoke(() => {
foreach (var item in items.Skip(x).Take(pageSize))
{
// when this row is executed new item should be visible
ItemsList.Children.Add(new _ListItem(item));
}
});
问候
max您应该使用该类来存储要显示的项目。该类实现了接口,该接口允许它在添加和删除项时更新UI
以下是有关和的更多详细信息(请参见此)
此外,您可能需要使用添加/删除项目。您应该使用类来存储要显示的项目。该类实现了接口,该接口允许它在添加和删除项时更新UI
以下是有关和的更多详细信息(请参见此)
此外,您可能需要使用添加/删除项。此代码段每隔500毫秒向stackPanel添加一个新的文本块,而不会冻结UI。项目添加后立即在UI中可见:
ThreadPool.QueueUserWorkItem(_ => {
foreach (int item in Enumerable.Range(1,50)) {
Thread.Sleep(500);//simulate some calculations here
int item1 = item;
Deployment.Current.Dispatcher.BeginInvoke(() => {
stackPanel.Children.Add(new TextBlock(){Text = "Text "+item1});
});
}
});
此代码段每500毫秒向stackPanel添加一个新的TextBlock,而不冻结UI。项目添加后立即在UI中可见:
ThreadPool.QueueUserWorkItem(_ => {
foreach (int item in Enumerable.Range(1,50)) {
Thread.Sleep(500);//simulate some calculations here
int item1 = item;
Deployment.Current.Dispatcher.BeginInvoke(() => {
stackPanel.Children.Add(new TextBlock(){Text = "Text "+item1});
});
}
});