gpt4 book ai didi

c# - 在 ViewModel 中存储信息或使用 IValueConverter

转载 作者:太空宇宙 更新时间:2023-11-03 17:50:10 25 4
gpt4 key购买 nike

如果我想将 wpf 中的 ButtonBackground 颜色更改为红色,如果我的 View 模型中的属性 Amount0 如果它大于 0 则变为绿​​色,为此使用值转换器更好,还是我应该简单地在我的 View 模型中实现自定义 Background-property ?此 Background 属性会将 Amount 值包装到 SolidColorBrush 中,它将绑定(bind)到 Background 按钮

哪种方式更直接?

谢谢!

最佳答案

我会使用 DataTrigger

将以下样式应用于您的按钮。

它绑定(bind)到 View 模型中的 Amount 属性。如果 Amount 的值为 0,它将默认背景颜色设置为“绿色”并更改为“红色”。

<Button.Style>
<Style TargetType="Button">
<Setter Property="Background" Value="Green" />
<Style.Triggers>
<DataTrigger Binding="{Binding Amount}" Value="0">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>


附加信息

您还可以使用 MultiDataTrigger 检查多个条件。

看起来像这样:

<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{...}, Value="..."/>
<Condition Binding="{...}, Value="..."/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="A" Value="..."/>
<Setter Property="B" Value="..."/>
</MultiDataTrigger.Setters>
</MultiDataTrigger>

查看 this article关于如何使用它。

对于范围检查,您似乎需要像其他响应或 this answer 中提到的那样实现 IValueConverter .

关于c# - 在 ViewModel 中存储信息或使用 IValueConverter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32473312/

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