2017-09-06 1 views
0

Je souhaite hériter d'une classe de base dont mes fenêtres contextuelles héritent, qui gère les rappels.XAMAR XAMAM Problème: Héritage Type introuvable dans l'espace de noms xmlns

Mon approche: Créer une classe ("CallbackPopup") qui hérite de PopupPage (https://github.com/rotorgames/Rg.Plugins.Popup) Créer des fichiers XAML + CS héritant de CallbackPopup

CallbackPopup: (Ma classe de base pour mes popups personnalisés)

using Rg.Plugins.Popup.Pages; 

namespace MyProject 
{ 
    public class CallbackPopup : PopupPage 
    { 
     //[...] 
    } 
} 

Héritant classe - XAML:

<?xml version="1.0" encoding="utf-8" ?> 
<myproject:CallbackPopup xmlns="http://xamarin.com/schemas/2014/forms" <!-- throws the error --> 
           xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
          xmlns:myproject="clr-namespace:MyProject;assembly=MyProject" 
          x:Class="MyProject.Layout.Popups.InheritingPopup"> 
    <CallbackPopup.Content> 
     <!-- [...] --> 
    </CallbackPopup.Content> 
</myproject:CallbackPopup> 

Héritant Classe - CS:

using Rg.Plugins.Popup.Services; 
using System; 
using Xamarin.Forms.Xaml; 

namespace MyProject.Layout.Popups 
{ 
    [XamlCompilation(XamlCompilationOptions.Compile)] 
    public partial class InheritingPopup: CallbackPopup 
    { 

    public InheritingPopup() 
    { 
     InitializeComponent(); 
    } 

    // [...] 
} 

Erreur:

Type CallbackPopup not found in xmlns http://xamarin.com/schemas/2014/forms 

J'ai testé le functionallity du popups et il a réussi. Cependant, le créer en tant que classe de base et en faire hériter d'autres popups ne fonctionne pas comme mon erreur l'indique. Ai-je manqué quelque chose dans les déclarations XAML, ou hérite de RG Plugins PopupPage provoquant le problème?

http://www.burkharts.net/apps/blog/the-secret-life-of-a-xaml-page/ états: « Vous ne pouvez pas tirer un Xaml défini sur un autre écran défini Xaml (à moins qu'ils ne définissent que les ressources et aucun contenu) » qui peut être la cause du problème? Je ne sais pas si les PopupPages RG Plugins sont des pages définies par Xaml qui définissent plus que des ressources et du contenu.

Nous vous remercions de votre soutien!

Répondre

1

Eh bien, vous devriez mettre myproject namespace lorsque vous initialisez CallbackPopup.Content. C'est ce que l'erreur essaie de vous dire :)

Quelque chose comme ceci:

<myproject:CallbackPopup.Content> 
     <!-- [...] --> 
</myproject:CallbackPopup.Content> 
+0

Vous êtes tout à fait raison !!! Merci beaucoup, j'ai raté que même les RG PopupPages l'implémentent de cette façon aussi. Bonne journée – Csharpest