3

私の WPF アプリケーションでは、次の xaml を使用しています: ...

<TextBox
services:TextBoxService.IsFocused="{Binding Path=IsSelected, Mode=OneWay}"
FocusVisualStyle="{x:Null}">
    <MultiBinding
        Converter="{StaticResource mconv_operableToString}" 
        UpdateSourceTrigger="PropertyChanged">
            <Binding 
                Path="Value"
                Mode="TwoWay"
                NotifyOnValidationError="True" />
            <Binding 
                RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}" 
                Path="DataContext.Status"
                Mode="OneWay" />
     </MultiBinding>

最初のバインディングが使用するビュー モデル クラスは、検証のために IDataErrorInfo を実装します。問題は、エラーがプロパティ セッターでキャッチされているにもかかわらず、UI がそれに気付かないことです。テキスト ボックスでエラーが発生したときに適用する必要があるエラー テンプレートで定義されたスタイルがあります。シングルバインディングを使用するとすべてが正常に機能するため、このシナリオはマルチバインディングでは許可されない可能性があると思います。

前もって感謝します。

4

1 に答える 1

3

これに対する答えは誰にもわからないように思えますが、このシナリオは機能しないと思います。誰かがそれを必要とする場合に備えて、私はそれに答えようとします。ビューを IDataErrorInfo を実装するビュー モデル クラスにバインドしようとしました。xaml でコンバーターを指定しましたが、すべて正常に動作しましたが、エラーが UI に表示されませんでした。そのため、バインディングからコンバーターを削除し、そのロジックをビュー モデル内に実装しました。これで、すべてが正常に動作するようになりました。

于 2010-06-24T13:11:11.473 に答える