Nasıl yapılır: GridLengthConverter Nesnesi Oluşturma ve Kullanma

Örnek

Aşağıdaki örnek, bir örneğini oluşturma ve kullanma hakkında bilgi GridLengthConverter içerir. Örnek, bir örneğini changeCol dönüştüren bir 'e iletir adlı ListBoxItemGridLengthConverter özel bir yöntemi ContentListBoxItemGridLength tanımlar. Dönüştürülen değer daha sonra öğenin özelliğinin değeri Width olarak geri ColumnDefinition geçirildi.

Örnek, adlı ikinci bir özel yöntemi de changeColVal tanımlar. Bu özel yöntem, öğesini öğesine dönüştürür ve ardından bu değeri Value öğesi olarak öğesine geri SliderStringColumnDefinitionWidth iletir.

Ayrı bir Extensible Application Markup Language (XAML) dosyasının içeriğini tanımladığına dikkat ListBoxItem olun.

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;
    }
}
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

Ayrıca bkz.