我在一个名为House
的类上有一个由Binding填充的列表视图。
以下是我的代码示例:
<DataTemplate DataType="house">
<TextBlock Text="{Binding sold_status}" />
</DataTemplate>
如您所见,我的一个变量名是sold_status
。这是bool
。
我想分别为1
和0
显示“已售出”或“未售出”。
是否可以根据值设计if语句?
因此,您可以想象我想要实现的目标:
<DataTemplate DataType="house">
<TextBlock Text="({Binding sold_status} == 1) 'SOLD' else 'NOT SOLD'" />
</DataTemplate>
答案 0 :(得分:5)
您需要创建一个带有DataTriggers的样式,以根据需要设置属性。您也可以使用转换器,但基于底层数据更改UI控件属性正是触发器/样式的全部内容。
..事实上,我可以看到你基本上'将'sold_status'转换为一些文字。为此,请使用转换器。我会发一个简单的例子..
请参阅此处的最佳答案:WPF: Display a bool value as "Yes" / "No" - 它有一个示例转换器类,您可以重新调整用途。
答案 1 :(得分:2)
查看IValueConverter接口以获取示例。实现Convert方法以返回要显示的文本。
答案 2 :(得分:0)
您想使用值converter。
答案 3 :(得分:0)
更好的方法是使用转换器。像第一个例子中那样保持绑定,然后让转换器返回一个字符串,如果为true则返回“Sold”。
答案 4 :(得分:0)
我建议你使用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>