Xamarin.Forms ViewCell / Visual Studio 2019 - «Частичные объявления someType не должны указывать разные базовые классы» - PullRequest
0 голосов
/ 06 октября 2019

В моем проекте Xamarin.Forms я пытаюсь создать многократно используемый ViewCell. Однако я не могу понять, почему, когда я просто создаю XAML и CS-файл ViewCell с использованием предоставленного VS шаблона, он не будет компилироваться из-за следующей ошибки:

"Частичные объявленияDateViewCell не должен указывать разные базовые классы.

Эта ошибка появляется после того, как я создаю файл (как вы увидите из кода ниже, я еще не добавил ни одного кода, и этовсе шаблон), и у меня есть полностью функциональный проект Xamarin.Forms, который без проблем компилируется, если я удалю расширение.

DateViewCell.xaml:

<?xml version="1.0" encoding="UTF-8"?>
<ViewCell 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="HelloWorld.Extensions.DateViewCell">
  <ViewCell.View>
      <StackLayout>
          <Label Text="Hello Xamarin.Forms!" />
      </StackLayout>
  </ViewCell.View>
</ViewCell>

DateViewCell.xaml.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace HelloWorld.Extensions
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class DateViewCell : ViewCell
    {
        public DateViewCell()
        {
            InitializeComponent();
        }
    }
}

DateViewCell.xaml.g.cs:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

[assembly: global::Xamarin.Forms.Xaml.XamlResourceIdAttribute("HelloWorld.Extensions.DateViewCell.xaml", "Extensions/DateViewCell.xaml", typeof(global::HelloWorld.Extensions.DateViewCell))]

namespace HelloWorld.Extensions {


    [global::Xamarin.Forms.Xaml.XamlFilePathAttribute("Extensions\\DateViewCell.xaml")]
    public partial class DateViewCell : global::Xamarin.Forms.ViewCell {

        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "2.0.0.0")]
        private void InitializeComponent() {
            global::Xamarin.Forms.Xaml.Extensions.LoadFromXaml(this, typeof(DateViewCell));
        }
    }
}

Вроде здесь тупик. Я попытался создать это расширение "DateViewCell" вручную, и я получил ту же ошибку, что и я, когда позволил VS создать файл для меня. Я начинаю удивляться, если это ошибка в Xamarin.

У кого-нибудь есть какие-либо предложения? Те статьи, которые я мог найти, которые ссылались на эту конкретную ошибку, на самом деле не применимы, и у меня нет идей о лучших способах поиска этого ... Спасибо всем.

...