Формы Xamarin включают файл xaml - PullRequest
0 голосов
/ 20 марта 2020

У меня есть файл xaml, в котором я написал заголовок.

<?xml version="1.0" encoding="UTF-8"?>                                                    
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" 
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:d="http://xamarin.com/schemas/2014/forms/design"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d"
         x:Class="TeenageClubWallet.Templates.Header">
<StackLayout>
    <Label Text="Header!" />
</StackLayout>

Я хочу использовать этот файл xaml в качестве заголовка в других файлах xaml. Вот пример. Я пытаюсь включить его в другой файл xaml:

Я добавил пространство имен: xmlns: template = "clr-namespace: TeenageClubWallet.Templates"

Теперь используется тег "template" для включения файла:

<?xml version="1.0" encoding="utf-8" ?>                                                   
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:d="http://xamarin.com/schemas/2014/forms/design"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d"
         x:Class="TeenageClubWallet.Statistics"
         xmlns:template="clr-namespace:TeenageClubWallet.Templates">

<ContentPage.Content>
    <template:Header/>

    <StackLayout>
        <Label Text="Content!" />
    </StackLayout>
</ContentPage.Content>

Visual Studio отображает ошибку: «Ошибка XLS0501 Свойство« Содержимое »установлено более одного раза».

Как я могу включить содержимое из одного файла xaml в другой файл xaml?

Ответы [ 2 ]

1 голос
/ 20 марта 2020

В этом примере ContentPage имеет два элемента - template:Header и StackLayout, и разрешен только один.

В этом причина этой проблемы. Я не углубился в оценку, есть ли еще проблемы, но если они существуют, и вы не можете их решить, вам следует задать новый вопрос.

0 голосов
/ 20 марта 2020

Я исправил это

Чтобы исправить это, вам нужно вставить тег <template:Header/> внутри тега <StackLayout>.

Ниже приведен полный код:

<?xml version="1.0" encoding="utf-8" ?>                                                   
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:d="http://xamarin.com/schemas/2014/forms/design"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d"
         x:Class="TeenageClubWallet.Statistics"
         xmlns:template="clr-namespace:TeenageClubWallet.Templates">

<ContentPage.Content>
    

    <StackLayout>
        <template:Header/>
        <Label Text="Content!" />
    </StackLayout>
</ContentPage.Content>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...