C# · 12月 25, 2021

c# – WPF .NET4.0重新使用UserControl的同一个实例

我想显示相同的用户控制实例两次.我试着做以下: <UserControl.Resources> <Views:MyControl View x:Key=”_uc1″ MinHeight=”300″/></UserControl.Resources>

并尝试在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>

我收到错误信息:
“{”指定的元素已经是另一个元素的逻辑小孩.首先断开连接.“}”

我试图实现什么?

谢谢,

解决方法 不是.如错误所示,给定对象可能只能在给定的逻辑树中存在一次.这有助于确保逻辑树保持树状.

如果您正在使用MVVM模式(或者通常使用DataBinding),则可以将两个不同的UserControl绑定到同一个后台viewmodel / data,以使控件的行为相同并在相同的状态表示中操作.不过,您仍然需要两个不同的控件.