7
votes

Le nettoyage de la zone de texte ne se lie pas à NULL

J'ai de la difficulté à définir une zone de texte vide sur NULL sur un champ NULLABLE DB.

xaml xxx

lorsque je sais qu'une valeur de la liaison, la liaison est bien et La valeur entrée est transmise de
Quand je laisse une valeur nulle seule une null est transmise de
Si je supprime la valeur de la zone de texte, la valeur passée est la valeur d'origine de la zone de texte et l'interface utilisateur n'est pas notifiée de la modification grrrrrrrrrrrrrrrrrrr

J'ai passé beaucoup de temps à vérifier option Rien de short de mettre le code derrière l'OntextChanged de chaque champ nullable, je ne peux pas voir l'efficacité de le faire.

Merci d'avance:

PS. Ont examiné TargeNullValue sans succès

Visual Studio 2008 - SP1 - .NET 3.5


0 commentaires

3 Réponses :


4
votes

envisagez d'utiliser un Convertisseur de valeur . Vous devriez être capable de mettre en œuvre la méthode de convert pour traduire les chaînes vides en nulls.


1 commentaires

Il a dû convertir en espace, comme une chaîne vide n'a pas déclenché la propriété modifiée pour une raison quelconque. Merci pour votre aide, je vais mettre en œuvre sur tous les endroits requis.



15
votes

Définir la propriété TargetNullValue code> de la liaison à string.empty code>: xxx pré>

J'ai essayé et ça marche pour moi.

et si je ne me trompe pas (veuillez me pardonner si je suis), vous devez définir la propriété StringFormat comme ceci: p>

StringFormat={}{0:C}


4 commentaires

XMLNS: SYS = "Espace CLR-NAMPACE: SYSTÈME; ASSEMBLAGE = MSCORLIB" J'ai essayé cela, mais Continuez à obtenir l'erreur 24 Impossible de charger le type "Microsoft.Windows.design.Metadata.ProvidemetaDataAttribute" à partir de montage "Microsoft.Windows.Design.extenbility, version = 3.5.0.0, Culture = neutre, PublickeyToken = B03F5F7F11D50A3A '. Ligne '1' position '6680'.


Je ne sais pas. Mais si je serais vous, j'essaierais juste pour un test d'avoir une zone de texte sans les autres définitions; juste contraignant et cibleNullvalue. De cette façon peut vous aider à trouver la source de l'exception.


J'ai essayé de supprimer le StringFormat tous ensemble et je reçois toujours la même mesure. --- ---- C'est tout ce que j'ai et obtenez toujours l'exception ci-dessus


Honnêtement, je ne voudrais pas :( j'aimerais pouvoir vous aider



3
votes

pour moi seulement convertisseur fonctionne: Voici Un lien

public class NullableConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
       return value == null ? string.Empty : String.Format(culture, "{0}", value);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
       return string.IsNullOrEmpty(String.Format(culture, "{0}", value)) ? null : value;
    }
}


0 commentaires