2016-03-08 58 views
0

我有一個像「帶有一個arg {0}的字符串」的靜態資源,我想通過綁定參數直接在XAML標記中對其進行格式化,但是我不知道如何將靜態字符串和參數字符串(如果多於一個參數,則爲字符串)。如何在WPF中格式化字符串並綁定格式參數?

<TextBlock Text={Binding AppResources.StaticStringWithOneArg, Source={StaticResource LocalizedStrings}}"> 
+0

您可以使用帶兩個綁定的MultiBinding,一個用於格式字符串,另一個用於參數。 – Clemens

+0

我相信你不能這樣做,也許沒有使用轉換器,多重綁定...我總是嘗試在ViewModel中做這些事情,並綁定已經格式化的字符串。這很容易我認爲 – Pikoh

+2

如果格式字符串實際上只是一個靜態資源,您可以設置一個普通的Binding的StringFormat屬性,如'StringFormat = {StaticResource StaticStringWithOneArg}'。 – Clemens

回答

0
<TextBlock> 
    <TextBlock.Text> 
    <MultiBinding StringFormat="arg one {0} and arg two {1}"> 
     <Binding Path="AppResources.StaticStringWithOneArg" Source="{StaticResource LocalizedStrings}" /> 
     <Binding Path"..."/> 
    </MultiBinding> 
    </TextBlock.Text> 
</TextBlock> 

沒有檢查,但我用這樣的昨天。當我回家時,我會在需要時更新。

+0

因爲第一個綁定應該提供格式字符串,所以這需要一個綁定轉換器而不是StringFormat。 – Clemens