Windows Phone(8/8.1)应用中有没有 Wrap Panel 的替代方案?

3
我有一个ListBox,其ItemsSource绑定到一组对象的集合。我的按钮内容绑定到MyObject属性"Name"。在UI上显示时,我希望将我的按钮包装起来,这样当它们达到应用程序的末尾时,我就开始在另一行中显示它们。显然,我只显示了前几个按钮,其余的被截断了。我所依靠的Wrap Panel似乎已经被淘汰了。
我的视图(XAML):
<ListBox Grid.Row="1" ItemsSource="{Binding Objects}">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal"></StackPanel>
          </ItemsPanelTemplate>
        </ListBox.ItemsPanel>


        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <Button  Margin="2" Content="{Binding Name}" Width="200" />                     
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

我的 ViewModel:

public ObservableCollection<MyObject> Objects { get; set; }
    public MainViewModel()
    {
        Objects = new ObservableCollection<MyObject>();
        Add();
    }

    private void Add()
    {
      for (int i = 0; i < 15; i++)
        {
          Objects.Add(new MyObject() { Name = i});
        }
     }


    public class MyObject
    {
        public int Name { get; set; }


    }

任何想法吗?谢谢。
2个回答

6

您可以使用ItemsWrapGrid来解决这种情况,使用方法类似:

<ListView ...>
    <ListView.ItemsPanel>
          <ItemsPanelTemplate>
               <ItemsWrapGrid .../>
          </ItemsPanelTemplate>
    </ListView.ItemsPanel>
</ListView>

不适用于UWP应用程序。请看标题。 - Willem van Rumpt
抱歉我的错!!!我在寻找解决方案时发现了这个,但没有仔细阅读问题。 - Hatim Nagarwala

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接