此問題與此主題有關。指定的元素已經是另一個元素的邏輯子元素
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