c# & # 39;如果# 39;绑定值
本文关键字:绑定 如果 | 更新日期: 2023-09-27 18:13:06
我有一个列表视图,它是由绑定填充的,在一个名为House
的类上。
下面是我的代码示例:
<DataTemplate DataType="house">
<TextBlock Text="{Binding sold_status}" />
</DataTemplate>
如您所见,我的一个变量名是sold_status
。这是一个bool
我想分别显示1
和0
的"SOLD"或"NOT SOLD"。
是否可以根据值来设计if语句?
这样你就可以想象我想要达到的效果了:
<DataTemplate DataType="house">
<TextBlock Text="({Binding sold_status} == 1) 'SOLD' else 'NOT SOLD'" />
</DataTemplate>
您需要创建一个带有DataTriggers的样式,以便根据需要设置属性。你也可以使用转换器,但是基于底层数据改变UI控件属性正是触发器/样式的全部。
. .事实上,我可以看到你基本上是在把sold_status '转换'成一些文本。为此,请使用转换器。我将张贴一个简短的例子…
查看上面的答案:WPF:将bool值显示为"Yes"/"No"-它有一个可以重新使用的示例转换器类
查看IValueConverter接口的示例。实现Convert方法以返回您想要显示的文本。
您需要使用值转换器
更好的方法是使用转换器。保持你在第一个例子中所做的绑定,然后让转换器返回一个字符串"Sold",如果为真等等。
我建议您使用数据触发器。它非常简单,不需要单独的转换器。
<DataTemplate DataType="house">
<TextBlock x:Name="Status" Text="SOLD" />
<DataTemplate.Triggers>
<DataTrigger Binding="{sold_status}" Value="False">
<Setter TargetName="Status" Property="Text" Value="NOT SOLD"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>