代码之家  ›  专栏  ›  技术社区  ›  Reosoul

通过C设置ItemPanelTemplate UniformGrid的行#

  •  0
  • Reosoul  · 技术社区  · 11 年前

    以下是我所拥有的:

    <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的Rows/Columns(最好是不包含在infoData中的变量)?

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

    1 回复  |  直到 11 年前
        1
  •  1
  •   Community T.Woody    7 年前

    您需要访问 ItemsPanel 以便在运行时设置列。对此有几个不同的选项,包括导航VisualTree。 This answer 详细描述了选项和步骤。