gpt4 book ai didi

带有条件表达式的 WPF 数据绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 18:39:50 24 4
gpt4 key购买 nike

我正在使用 MVVM 模式,并且我的 View 的数据上下文有一个属性 Customer。现在我想根据 Customer.CustomerID 属性的值绑定(bind)文本框的 IsEnabled 属性。如果它大于 0,则应启用它,否则应禁用它。

我知道我可以轻松地在 View 模型中添加一个 bool 属性并将其绑定(bind)到文本框的 IsEnabled 属性,但这似乎有点过分了。

最佳答案

有多种选择。

首先,您可以使用DataTrigger

<TextBox>
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="IsEnabled" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Customer.CustomerID}" Value="0" >
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
<TextBox>

请注意,DataTrigger setter 中的值只能覆盖样式 setter 中设置的值。如果直接设置该值,则触发器将不起作用。
原因是Dependency Property Value Precedence .

DataTrigger 仅适用于相等条件,因此如果您还需要检查负数,请使用第二个选项 - Value Converter

关于带有条件表达式的 WPF 数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18542120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com