Wie behandeln Ausnahme in Wert-Wandler, so dass benutzerdefinierte Fehlermeldung, die angezeigt werden können

Ich habe eine textbox, die gebunden ist, um eine Klasse mit einer Eigenschaft vom Typ Timespan und geschrieben haben, einen Wert converter konvertiert eine Zeichenfolge in TimeSpan.

Wenn eine andere Zahl eingegeben wird, in der textbox, ich möchte eine benutzerdefinierte Fehlermeldung angezeigt werden (anstatt der Standard-input-string ist im falschen format').

Den converter code:

    public object ConvertBack(
        object value,
        Type targetType,
        object parameter,
        CultureInfo culture)
    {
        try
        {
            int minutes = System.Convert.ToInt32(value);
            return new TimeSpan(0, minutes, 0);
        }
        catch
        {
            throw new FormatException("Please enter a number");
        }
    }

Habe ich 'ValidatesOnExceptions=True' in der XAML-binding.

Habe ich jedoch über die folgenden MSDN-Artikel, der erklärt, warum der oben nicht funktioniert:

"Data binding engine nicht fangen Sie die Ausnahmen, die geworfen werden, die von einem Benutzer gelieferten Konverter. Jede Ausnahme, die ausgelöst wird durch die Convert-Methode, oder alle nicht abgefangene Ausnahmen, die ausgelöst werden, durch Methoden, die die Convert-Methode aufruft, werden behandelt, als run-time-Fehler"

Ich habe gelesen, dass 'ValidatesOnExceptions fängt Ausnahmen in TypeConverters, also meine konkreten Fragen sind:

  • Als würde Sie ein TypeConverter über einen ValueConverter
  • Vorausgesetzt, ein TypeConverter ist nicht die Antwort auf die Frage oben, wie kann ich meine benutzerdefinierte Fehlermeldung in der Benutzeroberfläche

InformationsquelleAutor der Frage sturdytree | 2011-05-25

Schreibe einen Kommentar