C# WPF半动态网格

C# WPF半动态网格,c#,wpf,grid,C#,Wpf,Grid,我有一个2D LED阵列,我想打开/关闭。 为此,我想使用一个网格,每个单元格都应该显示一个切换按钮 LED的数量可能会有所不同,但在启动时可以从配置文件中得知(在运行时gridsize没有变化) 我看到了一些全动态网格的解决方案,但对于我的需求来说,它们似乎非常复杂 有没有办法用模板创建网格 我还尝试使用DataGrid,但这也仅限于1D阵列 通常(用于在一个方向上堆叠元素),我使用 <StackPanel> <ItemsControl ItemsSource="{B

我有一个2D LED阵列,我想打开/关闭。 为此,我想使用一个网格,每个单元格都应该显示一个切换按钮

LED的数量可能会有所不同,但在启动时可以从配置文件中得知(在运行时gridsize没有变化)

我看到了一些全动态网格的解决方案,但对于我的需求来说,它们似乎非常复杂

有没有办法用模板创建网格

我还尝试使用DataGrid,但这也仅限于1D阵列

通常(用于在一个方向上堆叠元素),我使用

<StackPanel>
    <ItemsControl ItemsSource="{Binding ArrayOfElementsToBindTo}" ItemTemplate="{StaticResource ViewTemplate}" />
</StackPanel>

二维网格是否有类似的功能?

您可以使用。您需要指定列(或行)的数量,UniformGrid将根据元素的数量计算出行(或列)

<ItemsControl ItemsSource="{Binding ArrayOfElementsToBindTo}" ItemTemplate="...">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Columns="2" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

我认为,如果需要根据项目数进行计算,可以将
绑定到某个对象(例如,通过合适的转换器,绑定到
ArrayFelementsToBindto