У меня есть компонент Xamarin Forms, у которого есть StackLayout в Xaml. Я дал ему xName stackView.

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

Ошибка, которую я получаю, говорит о том, что мое пользовательское представление входа не может быть преобразовано в Xamarin.Forms.View.

using System;
using System.Collections.Generic;

using Xamarin.Forms;

namespace TechPact
{
    public partial class CustomView : ContentPage
    {
        public CustomView()
        {
            InitializeComponent();
            stackView.Children.Add(new CustomLoginView());
        }
    }
}

Вот мой вид входа

?xml version="1.0" encoding="UTF-8"?>
<ContentPage
    xmlns ="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="TechPact.CustomLoginView">

    <StackLayout>
        <Button Text="Login with Facebook" />
    </StackLayout>
</ContentPage>

Вот код для представления входа в систему

using System;
using System.Collections.Generic;

using Xamarin.Forms;

namespace TechPact
{
    public partial class CustomLoginView : ContentPage
    {
        public TechPactLoginView()
        {
            InitializeComponent();
        }
    }
}
3
mattwallace 26 Дек 2016 в 22:05

3 ответа

Расширяет ли ваш CustomLoginView ContentView или другое представление Xamarin Forms? Опубликованный вами код должен работать, если он работает

1
Lucas Moura Veloso 26 Дек 2016 в 22:08
Он расширяет ContentPage
 – 
mattwallace
26 Дек 2016 в 22:10
1
Ваш компонент должен расширять ContentView, а не ContentPage. Вы также можете расширять макеты, такие как StackLayout или AbsoluteLayout, или даже другие представления, например DatePicker, единственное, что вы не можете сделать, - это расширить ContentPage.
 – 
Lucas Moura Veloso
26 Дек 2016 в 22:27

Я не уверен, была ли это ошибка Xamarin Studio или если я изменил представление входа в систему для расширения ContnetView, а не ContentPage, но теперь он работает после того, как я это сделал.

0
mattwallace 26 Дек 2016 в 22:23
Посмотри на мой ответ :-)
 – 
Yuri S
26 Дек 2016 в 22:26

Вывести CustomLoginView из ContentView, а не из страницы

3
Yuri S 26 Дек 2016 в 22:22