0

私は簡単なコードを持っています:

    <Style.Triggers>
        <Trigger Property="IsValidated" Value="False">
            <Setter Property="Background" Value="Green"/>
        </Trigger>
    </Style.Triggers>

そして、これは例外を引き起こします

双方向バインディングには、Path または XPath が必要です。

IsValidated 宣言:

        public static readonly DependencyProperty IsValidatedProperty =
        DependencyProperty.Register("IsValidated", typeof(bool), typeof(MyTextBox), new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, IsValidatedPropertyChanged));

これは外部アセンブリであるため、宣言を変更できません。

このメッセージが表示される理由と、これを修正するにはどうすればよいですか?

4

2 に答える 2

2

エラーがスタイルトリガー内にあるとは思いません。おそらく、このようにコードの別の場所で IsValidated にバインドします

{Binding}

また

<Binding />

Pathただし、バインディングが同等の場合 (ピリオドは現在のソースにバインドされます) 、双方向バインディングには偶数が必要です。

{Binding Path=.}

それぞれ

<Binding Path="." />
于 2013-06-12T21:48:34.690 に答える
0

この依存関係プロパティで双方向バインディングが必要ない場合は、FrameworkPropertyMetadataOptions.BindsTwoWayByDefaultオプションを削除してください。その場合は、DataTriggerの代わりに RelativeSource Self へのバインディングで を使用してみてくださいTrigger

于 2013-06-12T20:48:21.000 に答える