Простой способ сделать это в WPF - определить шаблоны данных для каждого из ваших «средних» разделов.
Используя пример Outlook, у вас может быть класс MessageCollection, в котором хранится список сообщений, класс EventCollection, в котором хранится список событий календаря, и класс TaskCollection, в котором хранится список задач.
В вашей "средней" области у вас будет просто один ContentPresenter, для содержимого которого будет установлено значение MessageCollection, EventCollection или TaskCollection. Предположительно это будет сделано с помощью привязки к свойству модели представления.
Вот как это может выглядеть:
<Window ...>
<Grid>
<!-- group bar area -->
...
<!-- "middle" area -->
<ContentPresenter Grid.Row="1" Grid.Column="1"
Content="{Binding SelectedCollection}" />
</Grid>
</Window>
Теперь вы создаете шаблон данных для каждого типа коллекции, например:
<DataTemplate TargetType="{x:Type my:MessageCollection}">
<Grid>
... put the XAML for displaying mailbox contents here ...
</Grid>
</DataTemplate>
<DataTemplate TargetType="{x:Type my:EventsCollection}">
<Grid>
... put the XAML for displaying a calendar here ...
</Grid>
</DataTemplate>
<DataTemplate TargetType="{x:Type my:TasksCollection}">
<Grid>
... put the XAML for displaying a to-do list here ...
</Grid>
</DataTemplate>
При такой настройке все, что вам нужно сделать, чтобы переключить внутреннюю сетку, - это установить свойство SelectedCollection в вашей модели представления на другой тип коллекции.