방법: GridLengthConverter 개체 만들기 및 사용
업데이트: 2007년 11월
예제
다음 예제에서는 GridLengthConverter의 인스턴스를 만들고 사용하는 방법을 보여 줍니다. 이 예제에서는 ListBoxItem의 Content를 GridLength의 인스턴스로 변환하는 GridLengthConverter에 ListBoxItem을 전달하는 changeCol이라는 사용자 지정 메서드를 정의합니다. 변환된 값은 ColumnDefinition 요소의 Width 속성 값으로 다시 전달됩니다.
이 예제에서는 changeColVal이라는 두 번째 사용자 지정 메서드도 정의합니다. 이 사용자 지정 메서드는 Slider의 Value를 String으로 변환한 다음 이 값을 요소의 Width로 다시 ColumnDefinition에 전달합니다.
ListBoxItem의 내용은 별도의 XAML(Extensible Application Markup Language) 파일에 정의됩니다.
관련 XAML 파일을 비롯하여 전체 샘플을 보려면 GridLengthConverter 개체 샘플을 참조하십시오.
Private Sub changeColVal(ByVal sender As Object, ByVal args As RoutedPropertyChangedEventArgs(Of Double))
txt1.Text = "Current Grid Column is " + hs1.Value.ToString()
End Sub
Private Sub changeCol(ByVal sender As Object, ByVal args As SelectionChangedEventArgs)
Dim li1 As ListBoxItem = CType(CType(sender, ListBox).SelectedItem, ListBoxItem)
Dim myGridLengthConverter As System.Windows.GridLengthConverter = New System.Windows.GridLengthConverter()
If (hs1.Value = 0) Then
Dim gl1 As GridLength = CType(myGridLengthConverter.ConvertFromString(li1.Content.ToString()), GridLength)
col1.Width = gl1
ElseIf (hs1.Value = 1) Then
Dim gl2 As GridLength = CType(myGridLengthConverter.ConvertFromString(li1.Content.ToString()), GridLength)
col2.Width = gl2
ElseIf (hs1.Value = 2) Then
Dim gl3 As GridLength = CType(myGridLengthConverter.ConvertFromString(li1.Content.ToString()), GridLength)
col3.Width = gl3
End If
End Sub
private void changeColVal(object sender, RoutedEventArgs e)
{
txt1.Text = "Current Grid Column is " + hs1.Value.ToString();
}
private void changeCol(object sender, SelectionChangedEventArgs args)
{
ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
GridLengthConverter myGridLengthConverter = new GridLengthConverter();
if (hs1.Value == 0)
{
GridLength gl1 = (GridLength)myGridLengthConverter.ConvertFromString(li.Content.ToString());
col1.Width = gl1;
}
else if (hs1.Value == 1)
{
GridLength gl2 = (GridLength)myGridLengthConverter.ConvertFromString(li.Content.ToString());
col2.Width = gl2;
}
else if (hs1.Value == 2)
{
GridLength gl3 = (GridLength)myGridLengthConverter.ConvertFromString(li.Content.ToString());
col3.Width = gl3;
}
}