使用WrapPanel自定义ListView控件

时间:2015-04-19 19:32:54

标签: c# windows-runtime windows-phone winrt-xaml

我正在寻找一个自定义ListView控件,它可以水平排列项目,如果达到最大宽度,则将项目添加到下一行。

作为ListView.ItemsPanel的WrapGrid不起作用,因为它对每个项目使用相等的宽度(网格结构)。

WinRT XAML Toolkit中的WrapPanel没有ItemTemplate,由于缺少ItemSource属性,我无法使用绑定。

我可以用包装编写自己的ListView实现吗?我需要覆盖哪些方法?

1 个答案:

答案 0 :(得分:0)

解决方案是使用WinRT XAML Toolkit中的WrapPanel 里面 ListViews ItemsPanel:

            <ListView x:Name="Keywords" SelectionMode="Multiple" ItemContainerStyle="{ThemeResource ListViewItemStyle}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBlock Text="{Binding}" Style="{ThemeResource ListViewItemSubheaderTextBlockStyle}" />
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>

                <ListView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <toolkit:WrapPanel />
                    </ItemsPanelTemplate>
                </ListView.ItemsPanel>
            </ListView>