When <TextBlock Grid.Column="2" Text="{Binding}"/> already returns the value of ValueMax (like a virtual {Binding Path=ValueMax}) then your current {Binding Path=ValueMin} in reality will result in {Binding Path=ValueMax.ValueMin}.
So far the problem. My current solution to such thing would be a custom DataGridItemProperty inside a DataGridCollectionViewSource (to which the DataGridControl would be bound to) with a ValuePath="." :
<xcdg:DataGridItemProperty Name="ValueMinMax" ValuePath="." DataType="model:YourEntityType" CalculateDistinctValues="False"
IsReadOnly="True" MaxDistinctValues="0" Title="Value" />
Then you could use:
<xcdg:Column FieldName="ValueMinMax">
<xcdg:Column.CellContentTemplate>
<DataTemplate>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="30"/>
<ColumnDefinition Width="5"/>
<ColumnDefinition MinWidth="30"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Path=ValueMin}" TextAlignment="Right" />
<TextBlock Grid.Column="1" Text="-"/>
<TextBlock Grid.Column="2" Text="{Binding Path=ValueMax}"/>
</Grid>
</StackPanel>
</DataTemplate>
</xcdg:Column.CellContentTemplate>
</xcdg:Column>
But I really would like to see an official comment about this (whether its bad or will cause side effects -- or if there is a more native solution for this).
/\/\arkus.