[英]C# 'if' Binding value
我在名為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>
您需要創建一個帶有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.