Convert the contents of a ListBoxItem to an instance of GridLength by using GridLengthConverter
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="GridLengthConverter_grid.Window1" Title="GridLengthConverter Sample" WindowState="Maximized"> <StackPanel> <Grid Name="grid1" ShowGridLines="True" Height="300"> <Grid.ColumnDefinitions> <ColumnDefinition Name="col1" /> <ColumnDefinition Name="col2" /> <ColumnDefinition Name="col3" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Name="row1" /> <RowDefinition Name="row2" /> <RowDefinition Name="row3" /> </Grid.RowDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" TextWrapping="Wrap">Column 0, Row 0</TextBlock> <TextBlock Grid.Row="0" Grid.Column="1" TextWrapping="Wrap">Column 1, Row 0</TextBlock> <TextBlock Grid.Row="0" Grid.Column="2" TextWrapping="Wrap">Column 2, Row 0</TextBlock> <TextBlock Grid.Row="1" Grid.Column="0" TextWrapping="Wrap">Column 0, Row 1</TextBlock> <TextBlock Grid.Row="1" Grid.Column="1" TextWrapping="Wrap">Column 1, Row 1</TextBlock> <TextBlock Grid.Row="1" Grid.Column="2" TextWrapping="Wrap">Column 2, Row 1</TextBlock> <TextBlock Grid.Row="2" Grid.Column="0" TextWrapping="Wrap">Column 0, Row 2</TextBlock> <TextBlock Grid.Row="2" Grid.Column="1" TextWrapping="Wrap">Column 1, Row 2</TextBlock> <TextBlock Grid.Row="2" Grid.Column="2" TextWrapping="Wrap">Column 2, Row 2</TextBlock> </Grid> <Slider Name="hs1" Width="100" IsSnapToTickEnabled="True" Maximum="2" TickPlacement="BottomRight" TickFrequency="1" ValueChanged="changeColVal"/> <Slider Orientation="Horizontal" Name="hs2" Width="100" IsSnapToTickEnabled="True" Maximum="2" TickPlacement="BottomRight" TickFrequency="1" ValueChanged="changeRowVal" /> <TextBlock Name="txt1" TextWrapping="Wrap"/> <TextBlock Name="txt2" TextWrapping="Wrap"/> <ListBox Width="50" Height="50" SelectionChanged="changeCol"> <ListBoxItem>25</ListBoxItem> <ListBoxItem>50</ListBoxItem> <ListBoxItem>75</ListBoxItem> <ListBoxItem>100</ListBoxItem> <ListBoxItem>125</ListBoxItem> <ListBoxItem>150</ListBoxItem> </ListBox> <ListBox Width="50" Height="50" SelectionChanged="changeRow"> <ListBoxItem>25</ListBoxItem> <ListBoxItem>50</ListBoxItem> <ListBoxItem>75</ListBoxItem> <ListBoxItem>100</ListBoxItem> <ListBoxItem>125</ListBoxItem> <ListBoxItem>150</ListBoxItem> </ListBox> <Button Name="btn1" Click="setMinWidth">Set MinWidth="100"</Button> <Button Name="btn2" Click="setMaxWidth">Set MaxWidth="125"</Button> <Button Name="btn3" Click="setMinHeight">Set MinHeight="50"</Button> <Button Name="btn4" Click="setMaxHeight">Set MaxHeight="75"</Button> </StackPanel> </Window> //File:Window.xaml.vb Imports System Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Documents Namespace GridLengthConverter_grid Public Partial Class Window1 Inherits Window Public Sub changeRowVal(sender As Object, e As RoutedEventArgs) txt2.Text = "Current Grid Row is " + hs2.Value.ToString() End Sub Public Sub changeColVal(sender As Object, e As RoutedEventArgs) txt1.Text = "Current Grid Column is " + hs1.Value.ToString() End Sub Public Sub changeCol(sender As Object, args As SelectionChangedEventArgs) Dim li As ListBoxItem = TryCast(TryCast(sender, ListBox).SelectedItem, ListBoxItem) Dim myGridLengthConverter As New GridLengthConverter() If hs1.Value = 0 Then Dim gl1 As GridLength = CType(myGridLengthConverter.ConvertFromString(li.Content.ToString()), GridLength) col1.Width = gl1 ElseIf hs1.Value = 1 Then Dim gl2 As GridLength = CType(myGridLengthConverter.ConvertFromString(li.Content.ToString()), GridLength) col2.Width = gl2 ElseIf hs1.Value = 2 Then Dim gl3 As GridLength = CType(myGridLengthConverter.ConvertFromString(li.Content.ToString()), GridLength) col3.Width = gl3 End If End Sub Public Sub changeRow(sender As Object, args As SelectionChangedEventArgs) Dim li2 As ListBoxItem = TryCast(TryCast(sender, ListBox).SelectedItem, ListBoxItem) Dim myGridLengthConverter2 As New GridLengthConverter() If hs2.Value = 0 Then Dim gl4 As GridLength = CType(myGridLengthConverter2.ConvertFromString(li2.Content.ToString()), GridLength) row1.Height = gl4 ElseIf hs2.Value = 1 Then Dim gl5 As GridLength = CType(myGridLengthConverter2.ConvertFromString(li2.Content.ToString()), GridLength) row2.Height = gl5 ElseIf hs2.Value = 2 Then Dim gl6 As GridLength = CType(myGridLengthConverter2.ConvertFromString(li2.Content.ToString()), GridLength) row3.Height = gl6 End If End Sub Public Sub setMinWidth(sender As Object, e As RoutedEventArgs) col1.MinWidth = 100 col2.MinWidth = 100 col3.MinWidth = 100 End Sub Public Sub setMaxWidth(sender As Object, e As RoutedEventArgs) col1.MaxWidth = 125 col2.MaxWidth = 125 col3.MaxWidth = 125 End Sub Public Sub setMinHeight(sender As Object, e As RoutedEventArgs) row1.MinHeight = 50 row2.MinHeight = 50 row3.MinHeight = 50 End Sub Public Sub setMaxHeight(sender As Object, e As RoutedEventArgs) row1.MaxHeight = 75 row2.MaxHeight = 75 row3.MaxHeight = 75 End Sub End Class End Namespace