Это, безусловно, будет работать;однако более надежный подход будет использовать Prism ... точнее, IRegionManager .
Это обеспечивает способ определения регионов в вашем приложении, где вы можете перемещать контент в пределах региона.Примером может быть ...
<ad:DockingManager Grid.Row="1" Margin="0">
<ad:DocumentPane x:Name="WorkspaceRegion" prismrgn:RegionManager.RegionName="WorkspaceRegion"/>
</ad:DockingManager>
... где ad
- пространство имен для сборки AvalonDock ;однако это может быть ваш DockPanel
точно так же.На это можно ссылаться в следующем коде:*.
Это обеспечивает хорошее разделение в отношении действия Ribbon
, которое приведет к отображению интерфейса для данного действия.Он также предоставляет абстракцию для самого региона, т. Е. Это DockPanel
или какой-то другой элемент управления.
Как указывалось ранее, ваш первоначальный подход будет работать.Нужно ли выбирать такую среду, как Prism, чтобы изолировать проблемы, а также расширить функциональность, зависит от масштаба этого проекта как сейчас, так и в будущем.