2

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

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

4

3 回答 3

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

于 2012-05-16T11:24:30.170 回答
1

看看是否VirtualizingStackPanel符合你的要求?

类似问题

登录

于 2012-05-16T09:20:39.267 回答
1

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

添加一个包装面板,它将图像排列成行,然后像这样添加后台工作人员类。它将按行添加图像。

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(() =>

            {

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

            });
于 2012-05-16T09:03:02.180 回答