Partager via


Comment : créer et utiliser un objet GridLengthConverter

Mise à jour : novembre 2007

Exemple

L'exemple suivant montre comment créer et utiliser une instance de GridLengthConverter. L'exemple définit une méthode personnalisée appelée changeCol qui passe le ListBoxItem à un GridLengthConverter qui convertit le Content d'un ListBoxItem en une instance de GridLength. La valeur convertie est ensuite retournée comme valeur de la propriété Width de l'élément ColumnDefinition.

L'exemple définit également une deuxième méthode personnalisée, appelée changeColVal. Cette méthode personnalisée convertit la Value d'un Slider en String, puis retourne cette valeur à ColumnDefinition comme Width de l'élément.

Notez qu'un fichier XAML (Extensible Application Markup Language) séparé définit le contenu d'un ListBoxItem.

Pour consulter l'exemple complet, notamment le fichier XAML associé, consultez Objet GridLengthConverter, exemple.

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

Voir aussi

Référence

GridLengthConverter

GridLength