我的代码很简单:
<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));
我无法更改声明,因为这在外部程序集中。
为什么我有这条消息,我该如何解决这个问题?
答案 0 :(得分:2)
我认为错误不在样式触发器内。您可能在代码中的其他位置绑定到IsValidated,如此
{Binding}
或
<Binding />
但是双向绑定需要Path
,即使绑定是等效的(句点绑定到当前源)。
{Binding Path=.}
分别
<Binding Path="." />
答案 1 :(得分:0)
如果您不需要对此依赖项属性进行双向绑定,请删除FrameworkPropertyMetadataOptions.BindsTwoWayByDefault
选项。如果您这样做,请尝试使用DataTrigger
绑定到RelativeSource Self而不是Trigger
。