Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
9 / 8 / 4
Регистрация: 22.10.2017
Сообщений: 162
1

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

08.12.2018, 20:11. Просмотров 1349. Ответов 1

Здравствуйте. Хотел в приложении сделать добавление человека и вывод его в listview, однако происходит краш вот тут :
C#
1
2
3
4
5
6
7
8
9
10
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:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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>
Если что, скажите что ещё скинуть для полной картины. Заранее спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2018, 20:11
Ответы с готовыми решениями:

Вылетает программа на моменте выведении информации на экран
Всем привет! Учусь на программиста и нам задали проект: написать программу, где используется...

На новом компьютере программа вылетает в точке входа в метод InitializeComponent
пишу программу на своем компьютере с windows 7 и с установленной visual studio 2012 пытаюсь...

Xamarin Hello World вылетает
Здравствуйте, товарищи. Осваиваю Xamarin. Использую Xamarin Studio 5.9.3 (build 1). Создал проект...

Не удаётся скомпилировать приложение (Xamarin)
При запуске простейшего приложения, пишет ошибку Unhandled...

1
Эксперт .NET
14597 / 11020 / 2906
Регистрация: 17.09.2011
Сообщений: 18,549
08.12.2018, 20:31 2
Лучший ответ Сообщение было отмечено Keks_Stolicny как решение

Решение

Цитата Сообщение от Keks_Stolicny Посмотреть сообщение
System.MissingMethodException: Method not found
Обычно такая проблема возникает, если код был скомпилирован под одну версию сборки, а в процесс подключается другая версия.

Убедитесь, что код компилируется и выполняется под одну и ту же версию сборки, в которой живет класс Xamarin.Forms.Xaml.Internals.SimpleValueTargetProvider.
Если у вас в решении несколько проектов, то убедитесь, что все они используют одну и ту же версию сборки.

Если она подключается через NuGet, то там есть функция унификации версий по всем проектам решения.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2018, 20:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

VS2017 не может запустить Xamarin приложение на эмуляторе
Вот что в build логе она пишет О каком &quot;No space left on device&quot; идет речь? На винте есть еще...

Xamarin ругается на RAM, открыть приложение не могу
При запуске эмулятора android пишет что нехватает памяти, хотя у меня 4 гига. Запускается с...

Приложение на Xamarin.Forms + сервер Apache2 (с PHP и MySQL)
Форумчане, нуждаюсь в вашей помощи. Имеется кросс-платформенное приложение Xamarin.Forms, в котором...

Не могу подписать приложение и запустить на устройстве. Xamarin for Mac
Хочу запустить приложение на своем iPad устройстве. Однако при компиляции пишет &quot;Error: No...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.