Вылетает приложение на моменте InitializeComponent() Xamarin

165
05 июня 2019, 05:00

Здравствуйтею Хотел в приложении сделать добавление человека и вывод его в listview, однако происходит краш вот тут :

public partial class PersonPage : ContentPage
{
    public MainViewModel ViewModel { get; private set; }
    public PersonPage(MainViewModel vm)
    {
        InitializeComponent();  //в этой строчке
        ViewModel = vm;
        this.BindingContext = ViewModel;
    }
}

С вот таким сообщением:

Unhandled Exception: System.MissingMethodException: Method not found: void Xamarin.Forms.Xaml.Internals.SimpleValueTargetProvider..ctor(object[],object,Xamarin.Forms.Internals.INameScope)

Пытался делать через MVVM. Вот код MainViewModel:

public class MainViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    public Person person { get; private set; }
    PersonsListViewModel pvm;
    public MainViewModel()
    {
        person = new Person();
    }
    public PersonsListViewModel ListViewModel
    {
        get { return pvm; }
        set
        {
            if (pvm != value)
            {
                pvm = value;
                OnPropertyChanged("ListViewModel");
            }
        }
    }
    public bool IsValid
    {
        get
        {
            return ((!string.IsNullOrEmpty(Name.Trim())) ||
                (!string.IsNullOrEmpty(Surname.Trim())) ||
                (!string.IsNullOrEmpty(Gender.Trim())) ||
                (!string.IsNullOrEmpty(DoB.Trim())));
        }
    }
    public string Name
    {
        get { return person.Name; }
        set
        {
            if (person.Name != value)
            {
                person.Name = value;
                OnPropertyChanged("Name");
            }
        }
    }
    public string Surname
    {
        get { return person.Surname; }
        set
        {
            if (person.Surname != value)
            {
                person.Surname = value;
                OnPropertyChanged("Surname");
            }
        }
    }
    public string DoB
    {
        get { return person.DoB; }
        set
        {
            if (person.DoB != value)
            {
                person.DoB = value;
                OnPropertyChanged("DoB");
            }
        }
    }
    public string Gender
    {
        get { return person.Gender; }
        set
        {
            if (person.Gender != value)
            {
                person.Gender = value;
                OnPropertyChanged("Gender");
            }
        }
    }
    public string Id
    {
        get { return person.Id; }
        set
        {
            if (person.Id != value)
            {
                person.Id = value;
                OnPropertyChanged("Id");
            }
        }
    }
    protected void OnPropertyChanged(string propName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propName));
    }
}

Код PersonPage.xaml:

<?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:local="clr-namespace:GenTree.ViewModels"
         x:Class="GenTree.Views.PersonPage">
<StackLayout>
    <StackLayout x:Name="personStack">
        <Label Text="Name" />
        <Entry Text="{Binding Name}" FontSize="Medium" />
        <Label Text="Surname" />
        <Entry Text="{Binding Surname}" FontSize="Medium" />
    </StackLayout>
    <StackLayout Orientation="Horizontal" HorizontalOptions="CenterAndExpand">
        <Button Text="Add" Command="{Binding ListViewModel.SavePersonCommand}" CommandParameter="{Binding}" />
        <Button Text="Delete" Command="{Binding ListViewModel.DeletePersonCommand}" CommandParameter="{Binding}" />
        <Button Text="Back" Command="{Binding Path=ListViewModel.BackCommand}" />
    </StackLayout>
</StackLayout>
</ContentPage>

Если что, скажите что ещё скинуть для полной картины. Заранее спасибо.

Answer 1

Проблема была решена обновлением Xamarin.forms до версии 4.3 во всех проектах.

READ ALSO
Проблемы с интеграцией Reporting Services в VS2017

Проблемы с интеграцией Reporting Services в VS2017

Проблема заключается в том, что во время нормальной работы (создания того самого несчастного отчета) выскочило оповещение о зависании программы...

179
Возможно ли проверить три строки между собой методом compare?

Возможно ли проверить три строки между собой методом compare?

Нужно проверить три вводимые строки методом compare и вывести две наименьшиеКак это реализовать и возможно ли вообще? Compare ведь сравнивает только...

207
Пример Entity Framework provider версии 6

Пример Entity Framework provider версии 6

Где бы посмотреть примерчик скелета по вызовам Entity Framework provider версии 6, на мсдн нашел только для 5 версии и ниже, сырцы EFSQLProvider неподьемные по объему,...

183
Автообновление чата MySQL

Автообновление чата MySQL

Пытаюсь написать игровой чат Web <> Server на PHPОт сервера чат пишет в MySQL, но выводит результат (последние 70 сообщений) только при загрузке страници

202