我正在寻找一个自定义ListView控件,它可以水平排列项目,如果达到最大宽度,则将项目添加到下一行。
作为ListView.ItemsPanel的WrapGrid不起作用,因为它对每个项目使用相等的宽度(网格结构)。
WinRT XAML Toolkit中的WrapPanel没有ItemTemplate,由于缺少ItemSource属性,我无法使用绑定。
我可以用包装编写自己的ListView实现吗?我需要覆盖哪些方法?
答案 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>