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但是即使绑定是等效的(句点绑定到当前源),双向绑定也需要 a 。

{Binding Path=.}

分别

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

如果您不需要此依赖属性的双向绑定,请删除该FrameworkPropertyMetadataOptions.BindsTwoWayByDefault选项。如果这样做,请尝试使用DataTrigger绑定到 RelativeSource Self 的 a 而不是Trigger.

于 2013-06-12T20:48:21.000 回答