Это должно быть самой простой вещью в мире. У меня есть WPF DataGrid с большим количеством строк, чем уместится в поле зрения. Я хочу, чтобы DataGrid заполнял доступное пространство в окне и отображал вертикальную полосу прокрутки, если это необходимо. Я мог бы сделать это в считанные секунды в WinForms или HTML.
Если я назначу DataGrid фиксированную высоту, я получу вертикальную полосу прокрутки, но это не позволяет изменить размер окна.
Лучшее решение, которое я видел, - это привязка высоты DataGrid к ActualHeight родительского окна. Но мне не нужна полная высота окна, потому что у меня есть другие вещи в окне. Я мог бы сделать расчет, но это кажется ужасно сложным и будет меняться каждый раз, когда я добавляю в окно новые функции.
Кто-нибудь знает простой ответ на этот вопрос?
UPDATE:
Вот код:
<StackPanel>
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="_File">
<MenuItem Header="_Open" Command="{Binding Path=OpenCommand}"/>
<Separator/>
<MenuItem Header="_Recent Files" ItemsSource="{Binding MRUItems}"/>
<Separator/>
<MenuItem Header="E_xit" Command="{Binding ExitCommand}"/>
</MenuItem>
</Menu>
</DockPanel>
<DataGrid ItemsSource="{Binding Path=WordUsage}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Order" Binding="{Binding Order}"/>
<DataGridTextColumn Header="Word" Binding="{Binding Word}"/>
<DataGridTextColumn Header="Count" Binding="{Binding Count}"/>
</DataGrid.Columns>
</DataGrid>
</StackPanel>