The nice thing about dock panels is they already fill all the available space. LastChildFill is true by default (but I set it below for clarity), so just don't set the DockPanel attribute on the last child, and it will fill the available space.
<DockPanel HorizontalAlignment="Stretch" LastChildFill="true"> <TextBlock DockPanel.Dock="Left" Text="{Binding Path=Name}" FontSize="10" Foreground="Black" /> <TextBlock Text="{Binding Path=Price, StringFormat=\{0:C\}}" FontSize="10" Foreground="Black" /> </DockPanel>