首页 > 解决方案 > 如何在 WPF 中将一维数组绑定到二维显示(数据网格或网格)?

问题描述

我正在尝试设置用户控件的数据绑定。我有一个项目源列表,它的长度是 64,我想以 8x8 网格而不是 1x64 列表显示它,因为在 UI 中没有足够的空间显示。如何在 WPF 中做到这一点?

标签: wpfdata-bindingdatagridwpf-controls

解决方案


如果它们都应该是相同的大小,那么我建议使用UniformGrid. 这是一个如何在 an 中使用 a 的UniformGrid示例ItemsControl

<ItemsControl ItemsSource="...">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Rows="8" Columns="8" IsItemsHost="True"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

您应该能够替换ItemsControl它的任何后代,例如ListBox.

如果UniformGrid不是您正在寻找的东西,我的第二个建议是WrapPanel. 这应该可以让你大致得到你想要的布局,但它不会是一个固定的 8x8 网格。

如果这些面板都不适合您,我认为唯一剩下的选择就是构建您自己的面板。


推荐阅读