У меня есть модель домена, которая выглядит следующим образом:
* Parent
* ParentProperty1
* ParentProperty2
* Children (an array of Child objects)
* Child
* ChildProperty1
* ChildProperty2
У меня есть созданный пользовательский ChildUserControl
, который привязывается к ребенку через ChildViewModel
.Мое главное окно привязано к ParentViewModel
и содержит WrapPanel
, в котором отображается ChildUserControl
для каждого дочернего элемента, принадлежащего этому родителю.
XAML для панели:
<ItemsControl ItemsSource="{Binding Children}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<editor:ChildUserControl DataContext="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Проблема в том, что он устанавливает DataContext
каждого ChildUserControl
в необработанный объект Child
, вместо того, чтобы сначала обернуть их в ChildViewModels
.Есть ли какой-нибудь способ сказать XAML создать модель представления для каждого дочернего объекта во время процесса привязки?Или мой ParentViewModel
должен явно предоставлять привязываемую коллекцию ChildViewModels
?Благодаря.