После написания кода минимальная высота сетки всегда будет составлять 300: 50 для первых двух строк, плюс 200 для DataGrid (как установлено в свойстве MinHeight). Если контейнер этой таблицы (или, фактически, ScrollViewer, который вы объявили) становится меньше этого, ScrollViewer покажет свою вертикальную полосу прокрутки.
Лично, если ваш контейнер не будет меньше размера кнопок и некоторой части DataGrid, я бы просто удалил внешний ScrollViewer. Я не могу сказать наверняка, но я верю, что это даст вам желаемую функциональность.
Кнопки всегда будут видны, а DataGrid заполнит оставшееся пространство. Если DataGrid нужно больше места, чем видно, его ScrollBar автоматически отобразится.
Еще одна вещь, которую я, вероятно, хотел бы сделать, это расположить кнопки рядом друг с другом горизонтально - это не только очистит пользовательский интерфейс, но и сэкономит вам немного недвижимости. Вы можете даже изменить размер строки и соответственно изменить размер кнопок.
В целом, это может выглядеть примерно так (я бы, наверное, также сделал стиль для кнопок, но вы поняли):
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button
x:Name="_buttonAdd"
Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Left"
Margin="5"
Click="_buttonAdd_Click"
Content="Daten hinzufügen" />
<Button
x:Name="_buttonDel"
Grid.Column="1"
Grid.Row="0"
HorizontalAlignment="Right"
Margin="5"
Click="_buttonDel_Click"
Content="Daten löschen" />
<DataGrid
x:Name="_dataGrid"
Grid.Column="0"
Grid.Row="1"
Grid.ColumnSpan="2"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
AutoGenerateColumns="True"
ItemsSource="{Binding Path=MitarbeiterList}"
VerticalScrollBarVisibility="Auto">
</DataGrid>
</Grid>