通过c#设置ItemPanelTemplate UniformGrid的行

本文关键字:UniformGrid 的行 ItemPanelTemplate 设置 通过 | 更新日期: 2023-09-27 18:01:48

我有:

<ItemsControl x:Name="InfoGrid">
       <!-- ItemsPanelTemplate -->
       <ItemsControl.ItemsPanel>
               <ItemsPanelTemplate>
                     <UniformGrid Rows="4" Columns="5"                                                  Background="LightGray" />
               </ItemsPanelTemplate>
       </ItemsControl.ItemsPanel>
       <!-- ItemTemplate -->
       <ItemsControl.ItemTemplate>
              <DataTemplate>
                   <Border BorderBrush="Black" BorderThickness="{Binding Path=BorderThickness}">
                   <CheckBox Style="{StaticResource styleCustomCheckBox}" IsChecked="{Binding Path=IsChecked, Mode=TwoWay}"/>
                   </Border>
              </DataTemplate>
       </ItemsControl.ItemTemplate>

InfoGrid的itemsource被设置为一个名为infoData的集合,我如何通过c#设置这个UniformGrid的行/列(最好是infoData中不包含的变量)?

我尝试绑定和使用setter,但值似乎没有得到应用。

通过c#设置ItemPanelTemplate UniformGrid的行

您需要访问后面代码中的ItemsPanel,以便在运行时设置列。有几个不同的选项,包括导航VisualTree。这个答案非常详细地描述了选项和步骤。