У меня сетка из 5 рядов. В строке 2 и 4 у меня есть DataGrid. Остальные строки имеют фиксированную высоту. Содержимое таблиц в DataGrids, конечно, определяется динамически, а значит, и их высота. Поскольку в моем конкретном приложении существует связь между высотой двух таблиц, я хочу настроить MaxHeight обеих во время выполнения. Если таблица длиннее, чем изначально заданный MaxHeight, предполагается, что она получит полосу прокрутки. Но высота обеих таблиц никогда не должна быть больше страницы браузера.
Теперь я попытался сделать это во время выполнения, вызванное каким-то событием:
if (availableSpace - heightOfTable1 - heightOfTable2 < 0)
{
if (heightOfTable1 > heightOfTable2)
{
Table1.MaxHeight = availableSpace - heightOfTable2;
// Trigger a rerendering
Table1.ItemsSource = null;
Table1.ItemsSource = List1;
...
}
...
}
Однако я заметил, что ActualHeight не меняется, когда я это делаю. ActualHeight теперь больше указанного MaxHeight во время выполнения. Что я делаю не так?