2012-04-13 14 views
0

現時点では、byteプロパティにバインドされているテキストボックスがあります。ユーザーが0〜255の間に入力すると、アプリケーションは期待どおりに動作し、プロパティのセッターが実行されます。ユーザーがTextBoxに大きすぎる値を入力した場合、どのようにイベントを発生させることができますか?

ただし、ユーザーが256以上を入力すると、プロパティの設定ツールは実行されません。 TextBoxが赤く輪郭を描くようになるだけです。私はそれが無効な値であることを示すことを前提としています。

これでも十分ではありません。無効な値であることを知らせるために、メッセージボックスまたはユーザーにメモを表示する必要があります。これを実現するためには何をする必要がありますか?

+0

:System.Windows.MessageBox http://msdn.microsoft.com/en-us/library/ ms602949.aspx – Habib

答えて

0

コントロールまたはウィンドウに検証エラーハンドラを追加できます。ウィンドウコンストラクタで

this.AddHandler(Validation.ErrorEvent, new RoutedEventHandler(OnValidationError)); 

ハンドラ:メッセージボックスの使用については

private void OnValidationError(Object sender, RoutedEventArgs e) 
    { 
     if (e.OriginalSource is DependencyObject) 
     { 
      DependencyObject instance = e.OriginalSource as DependencyObject; 
      if (Validation.GetHasError(instance)) 
      { 
       System.Collections.ObjectModel.ReadOnlyObservableCollection<ValidationError> errors = Validation.GetErrors(instance); 
       // todo build message from errors and display 
      } 
     } 
    } 
2

ページに検証概要コントロールを追加する必要があります。

デフォルトでは非表示になっていますが、検証エラーが発生した場合(この場合、255より大きい値が入力された場合など)、ユーザーに何が間違っているかが表示されます。

several such controls available for WPFがあります。それらを評価し、あなたに適したものを選ぶ必要があります。表示される正確なエラーメッセージを制御するために、おそらくデータレイヤーにいくつかの属性を設定する必要があります。

1

テキストボックスが変更されるたびにInt32.Parseを行うように、テキストボックスのTextChangedイベントを定義することもできます。値が255を超えると、メッセージボックスが発火することがあります。

最大長を2文字にして、16進数で入力するようにする場合は、

0

私はあなたが求めているものをカバーする記事を持っています。タイトルはあなたが聞いているものと一致するようには見えないかもしれませんが、あなたが求めている機能をデモすることがあります。

How to disable a Button on TextBox ValidationErrors in WPF

これは、テキストボックスの周りだけでなく、どのようにメッセージあまりにも赤を持っているだけでなく、どのようにあなたが表示されます。

関連する問題