2013-07-12 1 views
2

Я пытаюсь следовать this tutorial, но я продолжаю сталкиваться с проблемами на шаге 4. Я получаю эту ошибку, и я не знаю, как ее исправить.Необъявленный префикс. Как объявить на Windows Phone?

Error 1 'mvvmnavigation' is an undeclared prefix. Line 1, position 2. 


<mvvmnavigation:baseapplicationpage 
    x:Class="MVVMNavigation.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768" 
    FontFamily="{StaticResource PhoneFontFamilyNormal}" 
    FontSize="{StaticResource PhoneFontSizeNormal}" 
    Foreground="{StaticResource PhoneForegroundBrush}" 
    SupportedOrientations="Portrait" Orientation="Portrait" 
    shell:SystemTray.IsVisible="True"> 

    <!--LayoutRoot is the root grid where all page content is placed--> 
    <Grid x:Name="LayoutRoot" Background="Transparent"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 

     <!--TitlePanel contains the name of the application and page title--> 
     <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> 
      <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/> 
      <TextBlock x:Name="PageTitle" Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> 
     </StackPanel> 

     <!--ContentPanel - place additional content here--> 
     <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"></Grid> 
    </Grid> 

    <!--Sample code showing usage of ApplicationBar--> 
    <!--<phone:PhoneApplicationPage.ApplicationBar> 
     <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> 
      <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/> 
      <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2"/> 
      <shell:ApplicationBar.MenuItems> 
       <shell:ApplicationBarMenuItem Text="MenuItem 1"/> 
       <shell:ApplicationBarMenuItem Text="MenuItem 2"/> 
      </shell:ApplicationBar.MenuItems> 
     </shell:ApplicationBar> 
    </phone:PhoneApplicationPage.ApplicationBar>--> 

</mvvmnavigation:baseapplicationpage> 

мой отделенного кода

namespace MVVMNavigation 
{ 
    public partial class MainPage : MVVMNavigation.BaseApplicationPage 
    { 
     // Constructor 
     public MainPage() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

Base App

using System; 
using GalaSoft.MvvmLight.Messaging; 
using Microsoft.Phone.Controls; 

namespace MVVMNavigation 
{ 
    public class BaseApplicationPage : PhoneApplicationPage 
    { 
     public void NavigateTo(Uri uri) 
     { 
      if (uri.ToString() == "/GoBack.xaml") 
       NavigationService.GoBack(); 
      else 
       NavigationService.Navigate(uri); 
     } 

     protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) 
     { 
      Messenger.Default.Unregister<Uri>(this); 
      base.OnNavigatedFrom(e); 
     } 

     protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
     { 
      Messenger.Default.Register<Uri>(this, "NavigationRequest", NavigateTo); 
      base.OnNavigatedTo(e); 
     } 
    } 
} 

ответ

3

Вы должны объявить префикс mvmnavigation перед его использованием. Добавить xmlns:mvvmNavigation="clr-namespace:MVVMNavigation" в пространствах имен в XAML:

<mvvmnavigation:BaseApplicationPage 
    x:Class="MVVMNavigation.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:mvvmNavigation="clr-namespace:MVVMNavigation 
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768" 
    FontFamily="{StaticResource PhoneFontFamilyNormal}" 
    FontSize="{StaticResource PhoneFontSizeNormal}" 
    Foreground="{StaticResource PhoneForegroundBrush}" 
    SupportedOrientations="Portrait" Orientation="Portrait" 
    shell:SystemTray.IsVisible="True"> 

(Кроме того, XAML чувствителен к регистру, вы должны написать BaseApplicationPage и не baseapplicationpage)

Смежные вопросы