I'm trying to create a table with a variable number of rows and columns. I'm doing this with an ItemsControl
which has a Grid
as its ItemsPanel
. And I know I can set Grid.Row
and Grid.Column
of each item through its ItemContainerStyle
. But I don't know how to change the number of rows and columns and their sizes when I can't access the Grid by its name.
Question:
How can you modify RowDefinitions
or ColumnDefinitions
of a Grid
in run-time without any code-behind using Binding?
This is the XAML code:
<ItemsControl Name="myItemsControl" ItemsSource="{Binding Cells}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid Name="myGrid">
<Grid.RowDefinitions>
<!-- unknown number of rows are added here in run-time -->
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<!-- known number of columns are added here in run-time -->
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style.../>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
I tried to add some RowDefinition
in code behind but I couldn't find a way to gain access to myGrid
by its name (or any other way) since it is inside an ItemsPanelTemplate
.
I'm wondering if is there any way to programmatically add or modify RowDefinitions
in run-time?
Question&Answers:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…