0

caliburn の自動バインディングを介して VM のプロパティにバインドされているいくつかのテキスト ボックスを含むフォームがあります。ただし、バインディングの意味をなさないものをテキストボックスに入力すると、Caliburn は単に何もしません (または、私はそれを と見なします)。

Caliburn が何らかの方法で入力をバインディングに制限する方法があるかどうかを知りたいです。例えば:

VM の TimeSpan にバインドされた TextBox があります。00:00:10 を書き込むと問題なく動作し、TimeSpan を 10 秒に設定します。

00:00:-10 と書くと、何も起こらず、バインドは適切にバインドされた以前の値のままになります。

4

1 に答える 1

2

あなたの問題は、データバインディングを使用してビューをビューモデルに接続するのに役立つCaliburn.Microとは関係ありません。使用する必要があるのは、データ バインディングの検証です。Silverlight でのデータ バインディングの詳細を読むことができます。特に、データ検証のセクションを学習する必要があります。

Caliburn.Micro は、規則を使用してバインディングを自動的に作成します。ただし、目的の検証動作を実現するには、XAML でこれらのバインドをカスタマイズする必要がある場合があります。

00:00:-10バインディング エンジンの型コンバーターから例外がスローされるため、検証が失敗するように記述した場合。のバインディング式TextBoxValidatesOnExceptionsプロパティ値が true に設定されている場合、値が無効であるという視覚的なフィードバックが得られます。また、入力された値を に変換できなかっTimeSpanたため、ビューモデルは変更されません。

于 2012-07-03T08:41:07.107 に答える