Rewriting WPF GridViewColumn alignment in a less verbose way I wanted just to right align one column in WPF and I found out that the syntax is not exactly syntetic... Is there a way to make it more syntetic? 

Consider that this one colum, but I have 20 columns which share the same identical structure, changing only the displayed property.

&lt;GridViewColumn Header="trial" Width="110"&gt;
 &lt;GridViewColumn.CellTemplate&gt;
 &lt;DataTemplate&gt;
  &lt;TextBlock HorizontalAlignment="Right"&gt;
   &lt;TextBlock.Text&gt;
    &lt;MultiBinding StringFormat="{}{0:N} {1}"&gt;
      &lt;Binding Path="Income"&gt;&lt;/Binding&gt;
      &lt;Binding ElementName="UserControl" Path="DataContext.Pinco"&gt;&lt;/Binding&gt;
    &lt;/MultiBinding&gt;
   &lt;/TextBlock.Text&gt;
  &lt;/TextBlock&gt;
 &lt;/DataTemplate&gt;
 &lt;/GridViewColumn.CellTemplate&gt;
&lt;/GridViewColumn&gt;
XAML is XAML - I'm not sure what the meaning of "syntetic" is in this context, but the only thing I can see that could improve, is the closing tags for &lt;Binding&gt; - the empty elements can be collapsed:

&lt;MultiBinding StringFormat="{}{0:N} {1}"&gt;
  &lt;Binding Path="Income" /&gt;
  &lt;Binding ElementName="UserControl" Path="DataContext.Pinco" /&gt;
&lt;/MultiBinding&gt;


There aren't 20 different ways of specifying the horizontal alignment of a TextBlock:

&lt;TextBlock HorizontalAlignment="Right"&gt;


I don't see anything wrong with this.



Actually the indentation could use more spaces, too - but that's cosmetic (and probably just a copy/paste glitch with the tabs):

&lt;GridViewColumn Header="trial" Width="110"&gt;
    &lt;GridViewColumn.CellTemplate&gt;
        &lt;DataTemplate&gt;

            &lt;TextBlock HorizontalAlignment="Right"&gt;
                &lt;TextBlock.Text&gt;
                    &lt;MultiBinding StringFormat="{}{0:N} {1}"&gt;
                        &lt;Binding Path="Income" /&gt;
                        &lt;Binding ElementName="UserControl" Path="DataContext.Pinco" /&gt;
                    &lt;/MultiBinding&gt;
                &lt;/TextBlock.Text&gt;
            &lt;/TextBlock&gt;

        &lt;/DataTemplate&gt;
    &lt;/GridViewColumn.CellTemplate&gt;
&lt;/GridViewColumn&gt;


I like using vertical whitespace to separate things - it makes the markup easier to read, and maintain.



EDIT: Considering that there would be 20x such markup, with the only thing changing being the &lt;Binding Path="Income" /&gt; part, as @GeorgeHowarth commented you can look into making the DataTemplate a StaticResource, like this.