如何像列表框一样获得WP市场?

时间:2012-05-16 09:00:57

标签: c# windows-phone-7 listbox

我想制作一个按自定义行数加载数据的列表框。更像是市场上的列表框。有什么想法吗?

编辑:我的意思是列表框的工作方式。它一次按x行加载市场数据。我希望它能够加载数x的数据行,这样应用程序就不必一次加载所有数据。

3 个答案:

答案 0 :(得分:1)

有一个带有换行面板而不是堆栈面板的列表框或者在列表框中添加网格,并将图像添加到自定义行和列的网格中

添加一个包装面板,它将图像排成行,然后像这样添加backround worker类。它会在行中添加一个人的年龄。

var worker = new BackgroundWorker();

worker.DoWork += delegate(object sender, DoWorkEventArgs args)

{

    // Loop through all the items

    for (int i = 0; i < items.Count - 1; i++)

    {

        // Create a slight delay and add each item to the Items collection

        Thread.Sleep(200);

        Deployment.Current.Dispatcher.BeginInvoke(
         () =>

            {

                Items.Add(items[i]);

            });

    }

};
worker.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs args)

{

};

worker.RunWorkerAsync();

}

如果您有4张图片,请在列表中连续显示。尝试在后台工人阶级中喜欢。

Deployment.Current.Dispatcher.BeginInvoke(              ()=&gt;

            {

              Add first 4 items in list box then start the loop at index 5

            });

答案 1 :(得分:1)

查看VirtualizingStackPanel是否符合您的要求?

Similar Question

Msdn

答案 2 :(得分:1)

您可以使用此库中的ExtendedListBox控件:http://mytoolkit.codeplex.com

public MyPage()
{
    list.ScrolledToEnd += OnScrolledToEnd;
}

public void OnScrolledToEnd(object sender, ScrolledToEndEventArgs args)
{
    list.TriggerScrolledToEndEvents = false; 
    // TODO load more data async. => call OnDataLoaded on loaded
}

public void OnDataLoaded()
{
    // TODO add new items to list
    list.TriggerScrolledToEndEvents = true; 
}

如果您在使用此课程时遇到问题,请在此处通知我。

更多信息:http://mytoolkit.codeplex.com/wikipage?title=ExtendedListBox