我有:
<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,但值似乎没有得到应用。
您需要访问后面代码中的ItemsPanel
,以便在运行时设置列。有几个不同的选项,包括导航VisualTree。这个答案非常详细地描述了选项和步骤。