2016-05-26 2 views
3

Ich habe Probleme mit diesem Problem. Ich habe nur eine einfache Cross-Plattform-Seite hier ist XAML-Code:Xamarin Forms: System.Reflection.TargetInvocationException: Ausnahme wurde durch das Ziel eines Aufrufs ausgelöst

<?xml version="1.0" encoding="utf-8" ?> 
<CarouselPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="ForTesting.TestPage"> 
    <Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" /> 
    <ContentPage> 
    <ContentPage.Padding> 
     <OnPlatform x:TypeArguments="Thickness" iOS="0,40,0,0" Android="0,40,0,0" /> 
    </ContentPage.Padding> 
    </ContentPage> 
</CarouselPage> 

Und hier ist die gleiche Cross-Plattform-Seite Klasse:

public partial class TestPage: CarouselPage 
    { 
     public TestPage() 
     { 
      InitializeComponent(); 
      new Label 
      { 
       Text = "heelow", 
       FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)), 
       HorizontalOptions = LayoutOptions.Center 
      }; 
     } 
    } 

Zum Testen ich einfach Etikett erstellt, aber auch ohne Label ist es doesn arbeite nicht.

Ich rufe diese Seite in meinem MainPage.xaml:

<?xml version="1.0" encoding="UTF-8"?> 
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" 
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
        xmlns:local="clr-namespace:ForTesting;assembly=ForTesting" 
        x:Class="ForTesting.MainPage" 
      MasterBehavior="Popover"> 
    <ContentPage.ToolbarItems> 
    <ToolbarItem x:Name="CClick" 
       Text="C :" 
       Order="Primary"> 
    </ToolbarItem> 
    </ContentPage.ToolbarItems> 
    <MasterDetailPage.Master> 
    <local:MasterPage x:Name="masterPage" /> 
    </MasterDetailPage.Master> 
    <MasterDetailPage.Detail> 
    <NavigationPage> 
     <x:Arguments> 
     <local:TestPage/> 
     </x:Arguments> 
    </NavigationPage> 
    </MasterDetailPage.Detail> 
</MasterDetailPage> 

Und auf dieser Linie der Klasse: ForTesting.MainPage.xaml.g.cs ich Störung erhalte, wenn ich Programm bin Ausführung:

public partial class MainPage : global::Xamarin.Forms.MasterDetailPage { 

     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")] 
     private global::Xamarin.Forms.ToolbarItem CClick; 

     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")] 
     private global::ForTesting.MasterPage masterPage; 

     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")] 
     private void InitializeComponent() { 
-->   this.LoadFromXaml(typeof(MainPage)); 
     } 
    } 

Fehler:

Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.

Und ich habe noch eine Cross-Plattform-Seite, die als TestPage.xaml, b gleiche ut es funktioniert, wenn ich ausführe.

Antwort

2

Sie haben Fehler in Ihrer Carousel Seite

<?xml version="1.0" encoding="utf-8" ?> 
<CarouselPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="ForTesting.TestPage"> 
    <Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" /> 
    <ContentPage> 
    <ContentPage.Padding> 
     <OnPlatform x:TypeArguments="Thickness" iOS="0,40,0,0" Android="0,40,0,0" /> 
    </ContentPage.Padding> 
    </ContentPage> 
</CarouselPage> 

Karussell-Seite nur ein Kind haben sollte, und es sollte ein Content sein, werden Sie nicht in der Lage sein, sowohl Etikett und Inhalt Seite hinzuzufügen. Entfernen Sie diese Zeile

<Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" /> 

Wenn Sie Etikett und Inhalt als Karussell haben wollen, würde ich vorschlagen, so etwas wie CarouselView verwenden.

EDIT 1

Ich habe ein sample Carousel project mit neuestem Xamarin.Forms (2.2.0.31) erstellen, habe ich es auf iOS und Android getestet und es funktioniert. Sie können es als Starter verwenden, um Ihre Version zu implementieren. Ich verwende dieses Steuerelement in der Produktions-App.

+0

Vielen Dank für Ihre Antwort, eigentlich wurde ich gestern versucht, CarouselView zu implementieren, aber leider, als ich auf die neueste Version aktualisiert habe gab es keine Vorschläge dazu. Ich habe auf stabile Version aktualisiert, nicht vorrelease. – BinaryTie

+0

Es ist nicht in Xamarin.Forms. Es ist in XLabs Open-Source-Projekt. Ich habe den Link gepostet. Schau mal. – kyurkchyan

+0

Werfen Sie einen Blick auf meine Edit, Sie können ein Beispiel Karussell-Projekt greifen. – kyurkchyan

1

Im Allgemeinen habe ich festgestellt, dass Syntaxfehler in XAML möglicherweise als diese Ausnahme angezeigt werden.

Verwandte Themen