Я новичок в Silverlight и шаблоне MVVM / Prism, так что это может быть глупый вопрос.
У меня есть представление, в котором есть настраиваемые элементы управления. Эти настраиваемые элементы управления на самом деле тоже являются представлениями, и для их управления используются модели представления.
В настоящее время для добавления этих «дочерних» представлений к представлению, которое я использую (см. Рис. 1), а затем в модели представления у меня есть метод Initialise (), который разрешает дочернее представление и вводит его (см. Рис. 2).
Рис.1
<UserControl
x:Class="ProjectA.Module.Screens.Views.PlatformScreenView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Regions="clr-namespace:Microsoft.Practices.Composite.Presentation.Regions;assembly=Microsoft.Practices.Composite.Presentation"
>
<Grid x:Name="LayoutRoot">
<ContentControl
Regions:RegionManager.RegionName="FeaturesSelectionControl"
/>
</Grid>
Fig.2
public void Initialise()
{
IRegion featuresRegion = _regionManager.Regions["FeaturesSelectionControl"];
featuresRegion.Add(_container.Resolve<IFeatureSelectionControlViewModel>().View);
}
У меня вопрос: нужно ли делать это для каждого элемента управления, который я хочу добавить? Я понимаю, почему это работает таким образом, но это похоже на довольно много кода, а также мне нужно отслеживать все имена регионов и следить за тем, чтобы у меня не было конфликтов и т. Д. Есть ли более простой способ сделать это без регионов и только в XAML?
Я видел фрагмент XAML на StackOverflow здесь но не знаю, как это работает и хочу ли я -
<ContentControl Content="{Binding SmartFormViewModel}"/>
Любая помощь очень ценится.
Джеймс