Can we concat two properties together in binding expression? If possible without converter or without writing two textblocks and setting them individually?
- 
                    Take a look here http://stackoverflow.com/questions/541896/concatenate-strings-instead-of-using-a-stack-of-textblocks – NoWar Dec 08 '14 at 11:48
6 Answers
If you want to show, say FirstName and LastName, in a single TextBlock, then you can do like this:
<TextBlock>
     <Run Text="{Binding FirstName}" />
     <Run Text="   " /> <!-- space -->
     <Run Text="{Binding LastName}" />
</TextBlock>
Now, the TextBlock's Text property will be "Sachin Tendulkar" and will be displayed if:
FirstName = Sachin
LastName  = Tendulkar
- 
                    You forgot the / before the > in each Run statement. Otherwise, helped me a lot! – swinefeaster Dec 31 '11 at 23:41
- 
                    1
- 
                    Link to documentation: [Run class - UWP reference](https://learn.microsoft.com/en-us/uwp/api/windows.ui.xaml.documents.run) – binaryfunt Feb 26 '18 at 19:53
<TextBlock.Text>
   <MultiBinding StringFormat="{}{0} , {1}">
     <Binding Path="data1" />
     <Binding Path="data2" />
    </MultiBinding>
</TextBlock.Text>
data1 and data2 are string properties which are binded.
 
    
    - 946
- 11
- 19
- 
                    6This is a great solution, since it will work for more complex components like `DataGrid.TextColumn`. – Aleksandar Jun 10 '17 at 11:37
Like alpha-mouse suggests MultiBinding won't work out of the box, but this guy has thrown something together that might help:
If that seems a bit rogue, then maybe try putting a combined value property on your object as a helper for the Binding mechanism, like:
public string FullName {
   get { return this.FirstName + " " + this.LastName; }
}
 
    
    - 3,354
- 1
- 22
- 25
It is possible in WPF with the help of MultiBinding and StringFormat. But not in Silverlight unfortunately.
 
    
    - 4,953
- 24
- 36
If you need to add any string, then try it. Here I add "%" after binding text in windows phone.
<TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}%}"/>
 
    
    - 5,938
- 48
- 39
You can add a new property with a getter that performs the concatenation.
Say you have FirstName and LastName properties. You can then define a Name property as follows:
public string Name { get { return FirstName + " " + LastName; } }
This will work well, but you should be aware that you cannot do two-way binding for a read-only property. Also you may want to implement property changed notification for the concatenated property in the setters for the source properties.
 
    
    - 12,604
- 8
- 62
- 85
 
    
    - 35,612
- 10
- 61
- 76
 
     
    