这个问题与以下主题相关。
Prism RegionAdapter - Removing then Adding View
管理员删除了我在该主题下的帖子,说它已经得到解答,但我需要另起一篇新帖。如果有人解决了这个问题,请告诉我。
我被删除的帖子是... 您是怎么解决 "指定元素已经是另一个元素的逻辑子级。请先断开连接。" 这个关闭事件错误的?我尝试了同样的方法,在关闭时从documentpane中移除dockablecontent, 但没有帮助,我仍然得到这个错误。一旦我移除了视图,然后稍后再次尝试以您添加的方式添加它,我就会得到这个错误。
请帮帮我,我不知道我错过了什么。我已经浪费了很多时间去解决它,但还没有任何进展。
以下是我正在使用的代码:
我被删除的帖子是... 您是怎么解决 "指定元素已经是另一个元素的逻辑子级。请先断开连接。" 这个关闭事件错误的?我尝试了同样的方法,在关闭时从documentpane中移除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()),然后我就会收到这个错误。