繁体   English   中英

C#'if'绑定值

[英]C# 'if' Binding value

我在名为House的类上有一个由Binding填充的列表视图。

这是我的代码示例:

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

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

我想分别为10显示“已售出”或“未售出”。

是否有可能根据价值制定一个if语句?

所以这样你就可以想象我想要实现的目标:

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

您需要创建一个带有DataTriggers的样式,以根据需要设置属性。 您也可以使用转换器,但基于底层数据更改UI控件属性正是触发器/样式的全部内容。

..实际上,我可以看到你基本上'将'sold_status'转换为一些文字。 为此,请使用转换器。 我会发一个简单的例子..

请参阅此处的最佳答案: WPF:将bool值显示为“是”/“否” - 它有一个示例转换器类,您可以重新调整用途。

查找IValueConverter接口以获取示例。 实现Convert方法以返回要显示的文本。

您想使用值转换器

更好的方法是使用转换器。 像第一个例子中那样保持绑定,然后让转换器返回一个字符串,如果为true则返回“Sold”等。

我建议你使用DataTrigger。 它非常简单,不需要单独的转换器。

<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM