none
page之间导航出现的问题 RRS feed

  • 问题

  • 我的程序分为2个frame 

    下半部的frame 通过 和 含有 bingmap的page 来回切换后  出现以下错误。。

    直接弹出

    托管(v4.0.30319)”已退出,返回值为 -1073741819 (0xc0000005) 'Access violation'。

    环境:windows8 for rp 

    bingmap for rp  vs2012 rc

    <Frame x:Name="TopFrame" Grid.Row="1" CacheSize="2"/>
                <TextBlock HorizontalAlignment="Left" Margin="725,4,0,0" TextWrapping="Wrap" Text="武汉天气:晴 24c  微风三级" VerticalAlignment="Top" Height="36" Width="317" Foreground="Black" Style="{StaticResource SubheaderTextStyle}"/>
                <Frame x:Name="ContentFrame" 
                       HorizontalAlignment="Left" 
                       Height="1261" 
                       Margin="0,5,0,0"                    
                       VerticalAlignment="Top" 
                       Width="1080" Grid.Row="2" CacheSize="2">
                </Frame>

    2个页面设置 都为  NavigationCacheMode="Required"

    设计模式是mvvmlight 

    viewmodel 通过viewmodellocator 绑定


    非常荣幸成为.net 开发者

    2012年9月13日 1:43

全部回复

  • 能再给些代码让我们重现么?试试NavigationCacheMode设置为Enabled


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年9月13日 4:34
  • <common:LayoutAwarePage
        xmlns:Maps="using:Bing.Maps" 
        x:Name="pageRoot"
        x:Class="IntTourism.View.IntMaps"
        IsTabStop="false"
        xmlns:i="using:IntTourism.Com.Transvalue.Tools"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:IntTourism.View"
        xmlns:common="using:IntTourism.Common"
        xmlns:ignore="http://www.ignore.com"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d ignore" NavigationCacheMode="Disabled" TabNavigation="Cycle" Unloaded="pageRoot_Unloaded">
        <Page.DataContext>
            <Binding Path="Main" Source="{StaticResource MapLocator}"/>
        </Page.DataContext>
        <Page.Resources>
    
        </Page.Resources>
    
        <!--
            This grid acts as a root panel for the page that defines two rows:
            * Row 0 contains the back button and page title
            * Row 1 contains the rest of the page layout
        -->
        <Viewbox>
            <Grid Style="{StaticResource LayoutRootStyle}" Height="1259" Width="1080">
                <Grid.RowDefinitions>
                    <RowDefinition Height="400"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Maps:Map Credentials="{StaticResource CredentialsKey}"                       
                          Grid.Row="1"
                          x:Name="map"                      
                          ShowScaleBar="True"
                          PreloadArea="Small"
                          ShowTraffic="True" >
                    <i:EventToCommandCollection.Items>
                        <i:EventToCommand Command="{Binding ViewChangedCMD}"
                                          Event="ViewChanged">
    
                        </i:EventToCommand>
                    </i:EventToCommandCollection.Items>
                </Maps:Map>

    上面是bingmap页面的  我再unload 处做了处理

     

      
          private void pageRoot_Unloaded(object sender, RoutedEventArgs e)
            {
                #region UnRegister
                Messenger.Default.Unregister<Location>(this, "GoToLocation");
                Messenger.Default.Unregister<Location>(this, "AddPushPin");
                Messenger.Default.Unregister<Location>(this, "AddPin");
                map.Dispose();
                #endregion
            }

     

     #region ViewChangedCMD
            private RelayCommand<ExCommandParameter> _ViewChangedCMD;
    
            /// <summary>
            /// Gets the MyLocationCMD.
            /// </summary>
            public RelayCommand<ExCommandParameter> ViewChangedCMD
            {
                get
                {
                    return _ViewChangedCMD ?? (_ViewChangedCMD = new RelayCommand<ExCommandParameter>(
                        ExecuteViewChangedCMD,
                        CanExecuteViewChangedCMD));
                }
            }
    
            private void ExecuteViewChangedCMD(ExCommandParameter p)
            {
    
            }
    
            private bool CanExecuteViewChangedCMD(ExCommandParameter p)
            {
                return true;
            }
            #endregion

     

     

     

    NavigationCacheMode设置为3种模式我都试过了 都会出现 之前所说的那个错误。

     


    非常荣幸成为.net 开发者

    2012年9月13日 6:38
  • svn://www.oksvn.com/Timeline/IntTourism

    可以从这里获取完整的项目。


    非常荣幸成为.net 开发者

    2012年9月13日 7:06
  • 能否给个这个完整项目的代码
    2013年1月24日 14:13