簡體   English   中英

在沒有數據綁定的 XAML 中應用值轉換器

[英]Apply value converter in XAML without databinding

我在我的視圖中有一個 TextBlock,我希望始終顯示數字 1,轉換為當地貨幣。 (例如,美國 1 美元,英國 1 英鎊等)。 我有一個可以執行此操作的值轉換器,但我不知道如何在不從數據綁定中獲取數據的情況下將值轉換器應用於 1 的值。

我可以想到兩種解決方案,但它們都有自己的問題,我正在尋找更優雅的方法:

  1. 在我的 ViewModel 上創建一個屬性,該屬性只保存並返回值 1 並綁定到它。 然后將我的轉換器添加到此綁定。 這似乎是倒退,特別是因為這是僅查看代碼。

  2. 創建一個現有屬性的綁定點並修改我的轉換器以忽略賦予它的值,而是使用參數為其賦予數字 1。這對其他程序員來說是不直觀的,因為他們會困惑為什么我m 綁定到不同的屬性。

是否有某種方法可以在不首先創建綁定的情況下應用轉換器?

如果您希望僅從 XAML 中相對可讀,您總是可以這樣做:

<Label>
   <Label.Resources>
      <system:Int32 x:Key="defaultValue">1</system:Int32>
   </Label.Resources>
   <Label.Content>
      <Binding Source="{StaticResource defaultValue}"
            Converter="{StaticResource CurrencyConverter}" />
   </Label.Content>
</Label>

我有類似的情況,我需要將直接放置在 xaml 中的靜態枚舉值轉換為由我的自定義轉換器轉換而不使用數據綁定。

<Border>
    <Border.Background>
        <Binding Source="{x:Static enumeration:ColorType.Main}"
            Converter="{StaticResource ColorConverter}" />
    </Border.Background>
</Border>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM