XAML绑定字符串连接

Man*_*har 4 xaml binding string-concatenation

我有一个对象Person,它有FirstNameLastName属性.

在我的WPF UI中,我Label需要绑定到全名:

<Label Binding="{Binding FullName}" />
Run Code Online (Sandbox Code Playgroud)

我不想创建另一个只读属性,如:

public string FullName { get { return FirstName + " " + LastName; } }
Run Code Online (Sandbox Code Playgroud)

如何在XAML中连接这两个属性?

Mat*_*ton 10

有两种选择:

选项1:带有MultiBinding的单个TextBlock(或Label):

<TextBlock>
    <TextBlock.Text>
        <MultiBinding StringFormat="{}{0} {1}">
            <Binding Path="FirstName" />
            <Binding Path="LastName" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

选项2:水平StackPanel中的多个TextBlocks(或标签):

<StackPanel Orientation="Horizontal">
    <TextBlock Text="{Binding FirstName}" />
    <TextBlock Text=" " />
    <TextBlock Text="{Binding LastName}" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

我个人选择1.

  • 为MultiBinding +1.它太不受重视了. (2认同)