RowDefinitionCollection Class
Provides access to an ordered, strongly typed collection of RowDefinition objects.
Assembly: PresentationFramework (in PresentationFramework.dll)
'Declaration Public NotInheritable Class RowDefinitionCollection _ Implements IList(Of RowDefinition), ICollection(Of RowDefinition), _ IEnumerable(Of RowDefinition), IList, ICollection, IEnumerable 'Usage Dim instance As RowDefinitionCollection
You cannot directly create an instance of this class in XAML.
This example shows how to use the methods in the ColumnDefinitionCollection and RowDefinitionCollection classes to perform actions like adding, clearing, or counting the contents of rows or columns. For example, you can Add, Clear, or Count the items that are included in a ColumnDefinition or RowDefinition. To view the complete sample, see Row and Column Collections Sample.
The following example creates a Grid element with a Name of grid1. The Grid contains a StackPanel that holds Button elements, each controlled by a different collection method. When you click a Button, it activates a method call in the code-behind file.
<Grid DockPanel.Dock="Top" HorizontalAlignment="Left" Name="grid1" ShowGridLines="true" Width="625" Height="400" Background="#b0e0e6">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
</Grid>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Width="625" DockPanel.Dock="Top">
<Button Width="125" Click="addCol">Add Column</Button>
<Button Width="125" Click="addRow">Add Row</Button>
<Button Width="125" Click="clearCol">Clear All Columns</Button>
<Button Width="125" Click="clearRow">Clear All Rows</Button>
<Button Width="125" Click="removeCol">Remove One Column</Button>
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Width="625" DockPanel.Dock="Top">
<Button Width="125" Click="removeRow">Remove One Row</Button>
<Button Width="125" Click="colCount">How Many Columns?</Button>
<Button Width="125" Click="rowCount">How Many Rows?</Button>
<Button Width="125" Click="rem5Col">Remove 5 Columns</Button>
<Button Width="125" Click="rem5Row">Remove 5 Rows</Button>
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Width="625" DockPanel.Dock="Top">
<Button Width="125" Click="containsRow">Contains Row?</Button>
<Button Width="125" Click="containsCol">Contains Column?</Button>
<Button Width="125" Click="insertRowAt">Insert Row</Button>
<Button Width="125" Click="insertColAt">Insert Column</Button>
<Button Width="125" Click="colReadOnly">IsReadOnly?</Button>
</StackPanel>
This example defines a series of custom methods, each corresponding to a Click event in the Extensible Application Markup Language (XAML) file. You can change the number of columns and rows in the Grid in several ways, which includes adding or removing rows and columns; and counting the total number of rows and columns. To prevent ArgumentOutOfRangeException and ArgumentException exceptions, you can use the error-checking functionality that the RemoveRange method provides.
Imports System Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Documents Namespace SDKSample '@ <summary> '@ Interaction logic for Window1.xaml '@ </summary> Partial Public Class Window1 Inherits Window Dim rowDef1 As New RowDefinition Dim colDef1 As New ColumnDefinition Private Sub addCol(ByVal sender As Object, ByVal e As RoutedEventArgs) Dim colDef1 As New ColumnDefinition grid1.ColumnDefinitions.Add(colDef1) End Sub Private Sub addRow(ByVal sender As Object, ByVal e As RoutedEventArgs) Dim rowDef1 As New RowDefinition() grid1.RowDefinitions.Add(rowDef1) End Sub Private Sub clearCol(ByVal sender As Object, ByVal e As RoutedEventArgs) grid1.ColumnDefinitions.Clear() End Sub Private Sub clearRow(ByVal sender As Object, ByVal e As RoutedEventArgs) grid1.RowDefinitions.Clear() End Sub Private Sub removeCol(ByVal sender As Object, ByVal e As RoutedEventArgs) If (grid1.ColumnDefinitions.Count <= 0) Then tp1.Text = "No More Columns to Remove!" Else grid1.ColumnDefinitions.RemoveAt(0) End If End Sub Private Sub removeRow(ByVal sender As Object, ByVal e As RoutedEventArgs) If (grid1.RowDefinitions.Count <= 0) Then tp1.Text = "No More Rows to Remove!" Else grid1.RowDefinitions.RemoveAt(0) End If End Sub Private Sub colCount(ByVal sender As Object, ByVal e As RoutedEventArgs) tp2.Text = "The current number of Columns is: " + grid1.ColumnDefinitions.Count.ToString() End Sub Private Sub rowCount(ByVal sender As Object, ByVal e As RoutedEventArgs) tp2.Text = "The current number of Rows is: " + grid1.RowDefinitions.Count.ToString() End Sub Private Sub rem5Col(ByVal sender As Object, ByVal e As RoutedEventArgs) If (grid1.ColumnDefinitions.Count < 5) Then tp1.Text = "There aren't five Columns to Remove!" Else grid1.ColumnDefinitions.RemoveRange(0, 5) End If End Sub Private Sub rem5Row(ByVal sender As Object, ByVal e As RoutedEventArgs) If (grid1.RowDefinitions.Count < 5) Then tp1.Text = "There aren't five Rows to Remove!" Else grid1.RowDefinitions.RemoveRange(0, 5) End If End Sub Private Sub containsRow(ByVal sender As Object, ByVal e As RoutedEventArgs) If (grid1.RowDefinitions.Contains(rowDef1)) Then tp2.Text = "Grid Contains RowDefinition rowDef1" Else tp2.Text = "Grid Does Not Contain RowDefinition rowDef1" End If End Sub Private Sub containsCol(ByVal sender As Object, ByVal e As RoutedEventArgs) If (grid1.ColumnDefinitions.Contains(colDef1)) Then tp3.Text = "Grid Contains ColumnDefinition colDef1" Else tp3.Text = "Grid Does Not Contain ColumnDefinition colDef1" End If End Sub Private Sub colReadOnly(ByVal sender As Object, ByVal e As RoutedEventArgs) tp4.Text = "RowDefinitionsCollection IsReadOnly?: " + grid1.RowDefinitions.IsReadOnly.ToString() tp5.Text = "ColumnDefinitionsCollection IsReadOnly?: " + grid1.ColumnDefinitions.IsReadOnly.ToString() End Sub Private Sub insertRowAt(ByVal sender As Object, ByVal e As RoutedEventArgs) Dim rowDef1 As New RowDefinition grid1.RowDefinitions.Insert(grid1.RowDefinitions.Count, rowDef1) tp1.Text = "RowDefinition added at index position " + grid1.RowDefinitions.IndexOf(rowDef1).ToString() End Sub Private Sub insertColAt(ByVal sender As Object, ByVal e As RoutedEventArgs) Dim colDef1 As New ColumnDefinition() grid1.ColumnDefinitions.Insert(grid1.ColumnDefinitions.Count, colDef1) tp2.Text = "ColumnDefinition added at index position " + grid1.ColumnDefinitions.IndexOf(colDef1).ToString() End Sub End Class End Namespace
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.