Я использую Region Navigation, интегрированную с Silverlight Frame Navigation следующим образом: у меня есть frame , к которому я прикрепил region , и установил ContentLoader
в FrameContentLoader
, которое я получил из примера Карла Шифлетта :
<navigation:Frame
x:Name="ContentFrame"
Style="{StaticResource ContentFrameStyle}"
Source="/Home"
Navigated="ContentFrame_Navigated"
NavigationFailed="ContentFrame_NavigationFailed"
prism:RegionManager.RegionName="MainContentRegion">
<navigation:Frame.ContentLoader>
<prism_Regions:FrameContentLoader RegionName="MainContentRegion"/>
</navigation:Frame.ContentLoader>
<navigation:Frame.UriMapper>
<uriMapper:UriMapper>
<uriMapper:UriMapping Uri="" MappedUri="/MyProject.Views.Home" />
<uriMapper:UriMapping Uri="/{pageName}" MappedUri="/MyProject.Views.{pageName}" />
</uriMapper:UriMapper>
</navigation:Frame.UriMapper>
</navigation:Frame>
Я получаю следующее исключение: «Элемент уже является потомком другого элемента». , вот трассировка стека:
at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
at MS.Internal.XcpImports.SetValue(IManagedPeerBase obj, DependencyProperty property, DependencyObject doh)
at MS.Internal.XcpImports.SetValue(IManagedPeerBase doh, DependencyProperty property, Object obj)
at System.Windows.DependencyObject.SetObjectValueToCore(DependencyProperty dp, Object value)
at System.Windows.DependencyObject.SetEffectiveValue(DependencyProperty property, EffectiveValueEntry& newEntry, Object newValue)
at System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)
at System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value, Boolean allowReadOnlySet)
at System.Windows.Controls.ContentControl.set_Content(Object value)
at System.Windows.Navigation.NavigationService.CompleteNavigation(DependencyObject content)
at System.Windows.Navigation.NavigationService.ContentLoader_BeginLoad_Callback(IAsyncResult result)
это происходит всякий раз, когда я пытаюсь перейти к представлению Home , тогда как все остальные запросы на навигацию завершаются успешно! Чтобы убедиться, что проблема не в самом представлении , я попытался заменить Home на About , который является существующим представлением (делая его представлением при запуске) , но проблема все еще существует! Теперь я могу перейти к Home , но не About .
что может вызвать такую проблему?
PS: проблема сохраняется даже после того, как я удалил присвоение свойства Source
для Frame
и по умолчанию UriMapper
(первое). При этом у меня появляется ошибка при первом посещении, остальные работают нормально.