此问题与此主题有关。指定的元素已经是另一个元素的逻辑子元素
Prism RegionAdapter - Removing then Adding View
我的帖子此主题已被删除我的管理员,说是回答我要开始新的线程。请让我知道你是否有任何人已经解决了这个问题。
我删除的帖子是... 您是如何设法摆脱“指定元素已经是另一个元素的逻辑子元素,请先断开它。”关闭事件错误。我尝试了同样的事情,关闭时从文档面板中删除了dockablecontent。但它不能帮助我继续收到此错误。一旦我删除了视图,然后再尝试以与添加相同的方式再次添加视图,我会收到此错误。
请帮助我,我不知道我错过了什么。我浪费了很多时间试图绕过它,但没有运气。
这里是我使用的代码:
<ad:DockableContent ...
x:Name="viewRoot"
IsCloseable="True" HideOnClose="False"
Title="{Binding Title}">
<ContentControl Grid.Row="1" Content="{Binding View}"/>
</Grid>
</ad:DockableContent>
它被使用在这里面:
<ad:DockingManager x:Name="DockingManagerControl" Grid.Column="1">
<ad:ResizingPanel x:Name="MainResizingPanel" ResizeWidth="*" ResizeHeight="*" Orientation="Horizontal">
<ad:DockablePane ad:ResizingPanel.ResizeWidth="0.25*" prism:RegionManager.RegionName="ProjectBrowserRegion"/>
<ad:ResizingPanel x:Name="PespectiveResizingPanel" ResizeWidth="0.75*" ResizeHeight="*" Orientation="Horizontal">
<ad:DocumentPane x:Name="DockablePaneControl"/>
</ad:ResizingPanel>
</ad:ResizingPanel>
</ad:DockingManager>
查看内容绑定它来自不同的dll文件的UI元素,所以我没有他们作为View/ViewModel对。所以我不能在这里使用ContentTemplate + DataContext的方式。事情加载得很好,但使用可以选择/取消选择这些视图。所以如果一个视图再次打开视图选择对话框,然后我清除所有视图(我从DockablePaneControl Items.Clear()中删除它),并再次添加选定的视图(DockablePaneControl Items.Add()),然后我得到这个错误。
@jlafay的问题,因为你删除“谢谢你”在帖子的末尾。 Stackoverflow已锁定我的帐户以发布答案等。您是否投票拒绝或标记了我的问题?你能帮我吗?我在这里暂时不活跃,但现在我无法在这里发表任何答案。 – Rajiv
对不起。我没有拒绝投票,举报,或者对你的帖子做任何其他事情。我只是简单地提供了一个编辑。 – jlafay