2010-02-18 7 views
2

J'ai un TextBox qui se lie à une propriété entière.Liaison WPF avec valeur non valide pour la source

Que puis-je faire pour que quand il n'y a rien aucun texte valable dans la TextBox que la propriété se prépare à 0.

Je pense vraiment que cela peut être étendue de telle sorte que si la liaison échoue alors nous avons mis la source par défaut (T).

J'ai besoin d'un coup de pouce dans la bonne direction.

TargetNullValue est le contraire de ce que je cherche (je pense), qui définit le texte TextBox lorsque la source est nulle. Je veux lorsque le texte TextBox est une valeur de liaison non valide pour définir la source comme valeur par défaut.

Répondre

4

L'application d'une Converter comme celle-ci à votre fixation devrait faire l'affaire:

public class TextConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, 
     object parameter, CultureInfo culture) 
    { 
     int actual = (int)value; 

     return actual.ToString(); 
    } 

    public object ConvertBack(object value, Type targetType, 
     object parameter, CultureInfo culture) 
    { 
     string actual = (string)value; 

     int theValue = 0; 
     int.TryParse(actual, out theValue); 

     return theValue; 
    } 
} 

Votre TextBox contraignant ressemblerait à quelque chose comme ceci:

<TextBox Text="{Binding ... Converter={StaticResource convert}}"></TextBox> 

Avec le convertisseur défini comme une ressource de votre fenêtre/contrôle/...

Questions connexes