Лично, я поместил, 'Как рабочие потоки могут обновить UI' прямо под начальным уровнем. Среднего уровня, если Вы действительно должны. Если программист начального уровня может понять различие между логическим деревом и визуальным деревом, они должны понять, как обновить UI от фонового потока.
В моей организации, мы делаем большую разработку WPF без Смешения. Мне особенно не нравится Смешение, таким образом, я немного смещаюсь, но навыки Смешения должны быть хорошим, чтобы, я думаю.
Потому что элементы не имеют желаемого размера, пока вы их не измеряете. Вы указали сетке размер доступного пространства 0x0. Измените свой код на:
grid.Measure(new Size(grid.Width, grid.Height));
grid.Arrange(new Rect(new Size(grid.Width, grid.Height)));
(Вызов UpdateLayout не нужен.)