c# & # 39;如果# 39;绑定值

本文关键字:绑定 如果 | 更新日期: 2023-09-27 18:13:06

我有一个列表视图,它是由绑定填充的,在一个名为House的类上。

下面是我的代码示例:

<DataTemplate DataType="house">
    <TextBlock Text="{Binding sold_status}" />
</DataTemplate>

如您所见,我的一个变量名是sold_status。这是一个bool

我想分别显示10的"SOLD"或"NOT SOLD"。

是否可以根据值来设计if语句?

这样你就可以想象我想要达到的效果了:

<DataTemplate DataType="house">
    <TextBlock Text="({Binding sold_status} == 1) 'SOLD' else 'NOT SOLD'" />
</DataTemplate>

c# & # 39;如果# 39;绑定值

您需要创建一个带有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>