[WPF] 透過 StringFormat 處理多重繫結

Nov 12, 2019




情境

畫面上透過單一 TextBox 顯示複數的繫結資料項目,例如,名稱及稱謂分別 Name 及 Position 兩個屬性值,但顯示時要整合顯示,以往可能會在繫結資料加上結合兩項資料的屬性值提供繫結,但這樣的做法有些麻煩,其實 WPF 在 XAML 透過 StringFormate 就可以處理。

語法

<TextBox>
    <TextBox.Text>        
        <MultiBinding StringFormat="Hi {0}{1} 你好!">
            <Binding Path="Name">
            <Binding Path="Position">
        </MultiBinding>
    </TextBox.Text>
</TextBox>

字串樣式的結構採用類似程式的寫法,透過大括號及數字對應資料來源,但是若是字串樣式是 {0}{1} 則會有問題,因為 XAML 中對大括號的使用限制,此時在前面再加上一組空的大括號即可。

<TextBox>
    <TextBox.Text>        
        <MultiBinding StringFormat="{}{0}{1} 你好!">
            <Binding Path="Name">
            <Binding Path="Position">
        </MultiBinding>
    </TextBox.Text>
</TextBox>

參考