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