2015-06-15 2 views
1

Я работаю над простым графическим приложением, которое будет увеличивать масштаб и отслеживать мое местоположение, используя GeoCoordinateWatcher. Проблема в том, что всякий раз, когда я заканчиваю все на месте, InitializeComponents() всегда выдает исключение, а мой C# код не распознается XAML элементы управления картой. Это какая-то ошибка или я просто полный дурак?InitializeComponent «не существует» и «нет определения» для элементов управления картой XAML

КОД ОБРАЗЦА:

public MainPage() 
{ 
    this.InitializeComponent(); // This whole line is underlined red 

    this.NavigationCacheMode = NavigationCacheMode.Required; 
} 


public void CenterUserLocation() 
{ 
    // Center MyMap on user location 
    this.MyMap.Center = myPoint; //MyMap is underlined red 
    this.MyMap.ZoomLevel = 10; //MyMap is underlined red 
} 

UPDATE: (класс Определения C#)

namespace MapApp{ 

public sealed partial class MainPage : Page 
{ 
    GeoCoordinateWatcher watcher; 
    private Geopoint myPoint; 

UPDATE: (XAML)

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:MapApp" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps" 
    x:Class="MapApp.MainPage" 
    mc:Ignorable="d" 
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 

    <Page.BottomAppBar> 
     <CommandBar> 

      <!-- LOCATION BUTTON --> 
      <AppBarButton x:Uid="LocateAppBarButton" 
          x:Name="LocateAppBarButton" 
          Label="location" 
          Icon="Map" 
          Click="LocateAppBarButton_Click" /> 


     </CommandBar> 
    </Page.BottomAppBar> 

    <Grid> 
     <Maps:MapControl x:Name="MyMap" HorizontalAlignment="Left" VerticalAlignment="Top" Height="580" Width="400"/> 
    </Grid> 
</Page> 
+0

Вы изменили определение своего класса? На что унаследован ваш класс? –

+0

Класс MainPage: Страница (объявлена ​​в соответствующем файле xaml как x: class MapApp.MainPage) Я видел некоторых людей с измененными пространствами имен, имеющих схожие проблемы, но мои пространства имен, похоже, в порядке ... Я был в тупике довольно долгое время :( – numou

+0

Ну, вероятность того, что он на самом деле выдает исключение, должна быть около нуля, этого не может произойти до тех пор, пока вы не сможете скомпилировать код. Что-то не так с вашим XAML, мы не можем его увидеть. используйте Build + Rebuild, прежде чем делать что-то решительное. –

ответ

0

Ваш XAML и код-за должно быть что-то вроде это:

XAML:

<Page x:Class="MyNamespace.MyCanvasCodeInline"> 
    ... 

Code-за:

namespace MyNamespace 
    { 
     public partial class MyCanvasCodeInLine // : Page - not needed but implied 
     ... 

Вещи вы должны проверить:

  1. Код фоновым класса определяется как partial
  2. отделенного кода класса квалифицированных name (namespace + имя класса) совпадает с свойством x:Class корневого узла XAML
  3. Часть XAML корневой узел является некоторый класс, который реализует IComponentConnector (страница, окно, UserControl и т.д.)

Другой способ сделать это проверить файл xaml.cs, который получает сгенерированный «под» файл XAML, и сравнить его определение partial class с вашим классом кода. Они должны соответствовать типам, имени и пространству имен.

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