I’d like to display the same instance of user control twice. Ive tried doing the following:
<UserControl.Resources>
<Views:MyControl View x:Key="_uc1" MinHeight="300"/>
</UserControl.Resources>
And trying to use it in a TabControl:
<TabControl Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3" >
<TabItem >
<TabItem.Header>
<TextBlock Text="Header1" FontWeight="13"/>
</TabItem.Header>
<StackPanel >
<ContentControl Content="{StaticResource _uc1}"/>
</StackPanel>
</TabItem>
<TabItem >
<TabItem.Header>
<TextBlock Text="Header2" FontWeight="13"/>
</TabItem.Header>
<StackPanel MinHeight="600" >
<ContentControl Content="{StaticResource _uc1}"/>
</StackPanel>
</TabItem>
</TabControl>
Im getting the error message:
“{“Specified element is already the logical child of another element. Disconnect it first.”}”
Is what Im trying to achieve possible?
Thanks,
It’s not. As the error indicates, a given object may only be present in a given logical tree once. This helps to ensure that the logical tree remains a tree.
If you’re using the MVVM pattern (or are just using DataBinding in general,) then you can bind two different UserControls to the same backing ViewModel/data, so that the controls will behave the same and operate on the same state representation. You’ll still need two different controls, though.