您可以将 DataTrigger 绑定到附加属性吗?

发布于 2024-07-05 03:11:34 字数 816 浏览 5 评论 0原文

在 WPF 中,DataTrigger 是否可以绑定到附加属性?

我本质上想在附加属性上使用转换器来在特定验证规则被破坏时提供样式。 我使用如下标记:

<DataTrigger Binding="{Binding Path=Validation.Errors, 
                       RelativeSource={RelativeSource Self}, 
                       Converter={StaticResource RequiredToBoolConverter}}" 
                       Value="True">
  <Setter Property="Background" Value="LightGreen" />
</DataTrigger>

但是,当运行时,我得到以下信息:

System.Windows.Data 错误:39: BindingExpression路径错误: 未找到“验证”属性 '对象'''文本框'(名称='')'。 BindingExpression:Path=Validation.Errors; DataItem='TextBox' (名称=''); 目标 元素是“TextBox”(名称=“”); 目标 属性为“NoTarget”(类型“Object”)

如果我将 DataTrigger 绑定路径更改为“Text”,我不会收到数据绑定错误(但当然它不会提供我正在寻求的行为)。

In WPF, is it possible for a DataTrigger to bind to an attached property?

I essentially want to use a converter on an attached property to provide a style when a particular validation rule has been broken. I am using markup like the following:

<DataTrigger Binding="{Binding Path=Validation.Errors, 
                       RelativeSource={RelativeSource Self}, 
                       Converter={StaticResource RequiredToBoolConverter}}" 
                       Value="True">
  <Setter Property="Background" Value="LightGreen" />
</DataTrigger>

However, when this runs, I get the following:

System.Windows.Data Error: 39 :
BindingExpression path error:
'Validation' property not found on
'object' ''TextBox' (Name='')'.
BindingExpression:Path=Validation.Errors;
DataItem='TextBox' (Name=''); target
element is 'TextBox' (Name=''); target
property is 'NoTarget' (type 'Object')

If I change my DataTrigger binding path to "Text", I do not get the databinding error (but of course it does not provide the behaviour I am seeking).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

像你 2024-07-12 03:11:34

您需要将属性括在括号中:

<DataTrigger Binding="{Binding Path=(Validation.Errors).YourAttachedProperty,...

You need to wrap the property in parentheses:

<DataTrigger Binding="{Binding Path=(Validation.Errors).YourAttachedProperty,...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文