Xamarin Forms с ReactiveUI - изменения в xaml.g.cs потеряны, причины - ошибка ReactiveUI - PullRequest
1 голос
/ 20 апреля 2020

У меня есть приложение форм Xamarin, основанное на структуре вкладок. Представление tabbedpageview не наследуется от tabbedpage, но оно наследуется от ReactiveTabbedPage следующим образом:

public partial class PlanningDetailPage : ReactiveTabbedPage<PlanningDetailViewModel>

При этом файл xaml.g.cs выдает ошибку:

Using a generic type EactiveTabbedPage<TViewModel> requires 1 type arguments

См. Изображение ниже:

enter image description here

Когда я изменяю это на следующее:

    public partial class PlanningDetailPage : global::ReactiveUI.XamForms.ReactiveTabbedPage<PlanningDetailViewModel> {

Изменения теряются через некоторое время. Почему, и как я могу решить эту проблему?

1 Ответ

3 голосов
/ 20 апреля 2020

Если ваша страница является подклассом ReactiveTabbedPage , вам необходимо определить ViewModel , например,

using ReactiveUI.XamForms;
using ReactiveUI;
public partial class TabbedPage1 : ReactiveTabbedPage<MainViewModel>
{
    public TabbedPage1()
    {
        InitializeComponent();

        this.ViewModel = new MainViewModel();

    }
}

public class MainViewModel : ReactiveObject
{
    //...
}

в xaml

<?xml version="1.0" encoding="utf-8" ?>
<rxui:ReactiveTabbedPage 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"
             xmlns:rxui="clr-namespace:ReactiveUI.XamForms;assembly=ReactiveUI.XamForms" xmlns:local="clr-namespace:App24"
             mc:Ignorable="d"
             x:Class="App24.TabbedPage1"
             x:TypeArguments="local:MainViewModel">
  <!--Pages can be added as references or inline-->

</rxui:ReactiveTabbedPage>
...