Не думаю, что есть решение Binding без конвертера. Но почему бы не использовать один? Вы часто сталкиваетесь с таким требованием, поэтому имеет смысл создать некий MathConverter, который принимает некоторые свойства или параметры. Тогда вам не нужно создавать отдельный конвертер для каждого отдельного требования.
Однако, если вы действительно не хотите использовать конвертер, в зависимости от вашего макета вы можете также использовать сетку звездного размера, где AddButton распределен по двум строкам, а RemoveButton занимает только одну строку:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Name="AddButton" Grid.Row="0" Grid.RowSpan="2" ... />
<Button Name="RemoveButton" Grid.Row="1" ... />
</Grid>
Если вы хотите, чтобы RemoveButton центрировался вертикально, используйте это:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Button Name="AddButton" Grid.Row="0" Grid.RowSpan="3" ... />
<Button Name="RemoveButton" Grid.Row="1" ... />
</Grid>
Таким образом, AddButton занимает три строки (всего 4 *), а RemoveButton находится в центральной строке (2 *).
Если невозможно добавить их в одну общую сетку, вы можете использовать Grid.IsSharedSizeScope
присоединенное свойство. Подробности можно найти здесь .