从绑定中重置依赖属性值

发布于 2024-11-29 04:55:33 字数 421 浏览 0 评论 0原文

假设我有一个网格,上面有很多单元格,我将该单元格的背景绑定到样式中数据类的某个属性(实际上数据类属性是 Color 类型,但是这个不是问题,因为我们可以使用转换器将其转换为画笔),

现在,当我的数据类中的某些条件为真时,我希望背景为红色,如果不是,我希望它是默认值,数据可能会改变,所以条件可能会变成true 和 false,我应该将背景填充为红色或默认值

我知道 Binding.DoNothingDependencyProperty.UnsetValue 都不是这种情况,我也尝试过 Cell.BackgroundProperty .DefaultValue 但它是空的。

那么,是否有任何值可以从绑定的数据属性返回,以强制依赖属性重置其值?

谢谢!

Say I have a Grid, with a lot of cells on it, and I bind background of this cell to some property of my data class in a style (actually data class property is type of Color, but this is not an issue, because we can use a converter to convert it to a Brush),

Now when some condition in my data class is true I want the background to be red, and if not, I want it to be the default value, data may change, so condition may become true and false, and I should fill Background red or default

I know about Binding.DoNothing and DependencyProperty.UnsetValue both are not case, I tried also Cell.BackgroundProperty.DefaultValue but it is null.

So Is there any value, that I can return from my bound data property, to force the dependency property to reset its value?

Thanks!

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

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

发布评论

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

评论(1

简单爱 2024-12-06 04:55:33

如果您只有一个布尔属性,则非常方便,因为您可以使用 DataTrigger 并在属性为 true 时绑定值,这样属性并不总是绑定的。

<Style.Triggers>
    <DataTrigger Binding="{Binding MyCondition}" Value="True">
        <Setter Property="Background" Value="Red"/>
    </DataTrigger>
</Style.Triggers>

如果您只能在默认值和红色之间做出决定,那么您甚至根本不需要附加属性或任何绑定。

根据我的知识,重置值是不可能的

If you only have a boolean property that is quite convenient as you can use a DataTrigger and just bind the value if the property is true, that way the property is not always bound.

<Style.Triggers>
    <DataTrigger Binding="{Binding MyCondition}" Value="True">
        <Setter Property="Background" Value="Red"/>
    </DataTrigger>
</Style.Triggers>

If you only have the decision between default and red you do not even need the additional property or any binding at all.

(Resetting values is not possible in a binding to my knowledge)

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