样式触发器内部出现奇怪的“双向绑定”错误

时间:2013-06-12 20:41:57

标签: wpf wpf-controls

我的代码很简单:

    <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));

我无法更改声明,因为这在外部程序集中。

为什么我有这条消息,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

我认为错误不在样式触发器内。您可能在代码中的其他位置绑定到IsValidated,如此

{Binding}

<Binding />

但是双向绑定需要Path,即使绑定是等效的(句点绑定到当前源)。

{Binding Path=.}
分别

<Binding Path="." />

答案 1 :(得分:0)

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