silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight – 在ListBox的末尾添加一个Load More按钮而不会丢失虚拟化?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我知道通过编辑ListBox的默认样式,我可以在ListBox的最后有一个Button. <ScrollViewer x:Name="ScrollViewer" ...> <StackPanel> <ItemsPresenter /> <Button /> </StackPanel> </ScrollViewer> 但是,这样做会破坏ListBox
我知道通过编辑ListBox认样式,我可以在ListBox的最后有一个Button.

<ScrollViewer x:Name="ScrollViewer" ...> 
    <StackPanel>
        <ItemsPresenter />
        <Button />
    </StackPanel>
</ScrollViewer>

但是,这样做会破坏ListBox的虚拟化,渲染时间变得非常长.

我能想到的只是,

>创建一个虚拟项目并将其添加到我的项目集合的末尾
viewmodel,在虚拟对象中有一个名为ButtonGridVisibility的Visibility属性,并将其设置为Visibility.Visible.
>在我的ListBox的ItemTemplate中,有两个网格.一显示
正常的项目布局,另一个显示加载更多按钮.
然后根据ButtonGridVisibility属性切换其Visibility.

这可能有用,但我只是想知道是否有更简单/更好的方法

解决方法

我知道这是一个老帖子,但万一有些人偶然发现:

一个LongListSELEctor控件available out of the box in WP8或作为WP001的Windows Phone Toolkit的一部分,它非常巧妙地支持这个场景.如果要在最后一个项目之后(或在第一个项目之前)添加特定内容,则只需设置控件的ListFooter或ListHeader即可.您可以在其中放置任何内容,此内容将与其他项目一起滚动.

所以对于WP7,这看起来像这样

<toolkit:LongListSELEctor Itemssource="{Binding Items}">
    <toolkit:LongListSELEctor.ListFooter>
        <Grid>
            <Button />
        </Grid>
    </toolkit:LongListSELEctor.ListFooter>
</toolkit:LongListSELEctor>

其中toolkit是xmlns:toolkit =“clr-namespace:Microsoft.Phone.Controls; assembly = Microsoft.Phone.Controls.Toolkit”

大佬总结

以上是大佬教程为你收集整理的silverlight – 在ListBox的末尾添加一个Load More按钮而不会丢失虚拟化?全部内容,希望文章能够帮你解决silverlight – 在ListBox的末尾添加一个Load More按钮而不会丢失虚拟化?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。