私は独自のエラープロバイダーを持っており、組み込みのWPFのものを使用したくありません。整数にバインドされたテキストボックスがあり、ValidatesOnExceptions=FalseおよびValidatesOnDataErrors=Falseがあります。しかし、テキストボックスに整数以外を入力すると、赤い境界線が表示されます。足りないものはありますか?
1 に答える
2
いくつかのオプションがあります
- データ型を文字列に変更して、データの変換時にデフォルトのコンバーターが例外をスローしないようにすることができます。
文字列を整数に変換しようとしたときに例外をスローしないカスタム値コンバーターを使用できます
class CustomConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return value.ToString(); } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { int x = -1; Int32.TryParse(value.ToString(), out x); return x; } }
UpdateSourceTriggerを明示的に変更して、データバインディングがいつ更新されるかを正確に制御できます。
Expression Blendを使用して、TextBoxテンプレートのローカルコピーを編集し、バインディング検証エラーに関連するすべてのものを削除できます。
于 2012-07-31T16:22:54.940 に答える