Xamarin.Средство выбора форм приводит к сбою приложения

#mono #xamarin.ios #xamarin #xamarin.forms

#mono #xamarin.ios #xamarin #xamarin.forms

Вопрос:

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

     insurancePicker = new Picker() 
    {
        Title = "Insurance Frequency",
        VerticalOptions = LayoutOptions.FillAndExpand
    };
    insurancePicker.Items.Add("Monthly");
    insurancePicker.Items.Add("Semi-Annual");
    insurancePicker.Items.Add("Annual");              
    insurancePicker.SelectedIndexChanged  = (sender, args) =>
    {
        if (insurancePicker.SelectedIndex == -1)
        {               
        }
        else
        {
        }
    };
  

Я добавляю его в представление следующим образом:

 Content = new StackLayout{
            Spacing = 20, Padding = new Thickness(10, 10, 10, 0),
            Children = {
                homeValue,
                amountOwed,
                new StackLayout{
                    Spacing = 2,
                    Orientation = StackOrientation.Horizontal, 
                    Children = {
                        insurance,
                        insurancePicker
                    }
                },
                new StackLayout{
                    Spacing = 2,
                    Orientation = StackOrientation.Horizontal, 
                    Children = {
                        taxes,
                        taxesPicker
                    }
                },
                btnCalculate
            }
        };
  

Ниже приведена трассировка стека, которую я получаю:

mono-rt: трассировка стека:

mono-rt: при <0xffffffff>

mono-rt: at (оболочка, управляемая для встроенного) MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_int_int_bool (intptr,intptr,int,int,bool)

mono-rt: при MonoTouch.UIKit.UIPickerView.Выберите (int, int, bool) [0x00010] в /Developer/MonoTouch/Source/monotouch/src/build/compat/UIKit/UIPickerView.g.cs:185

mono-rt: в Xamarin.Формы.Platform.iOS.PickerRenderer.UpdatePicker ()

mono-rt: в Xamarin.Формы.Platform.iOS.PickerRenderer.OnModelSet (Xamarin.Forms.VisualElement)

mono-rt: в Xamarin.Формы.Platform.iOS.ViewRenderer.setModel (Xamarin.Forms.VisualElement)

mono-rt: в Xamarin.Формы.Platform.iOS.RendererFactory.GetRenderer (Xamarin.Forms.VisualElement)

mono-rt: в Xamarin.Формы.Platform.iOS.ViewPackager.HandleChildAdded (Xamarin.Forms.VisualElement)

mono-rt: в Xamarin.Формы.EnumerableExtensions.ForEach (System.Коллекции.Общий.IEnumerable 1<T>,System.Action 1)

mono-rt: at Xamarin.Forms.Platform.iOS.ViewPackager.Load ()

mono-rt: at
Xamarin.Forms.Platform.iOS.ViewRenderer.SetUpEventHandlers
(MonoTouch.UIKit.UIView)

mono-rt: at Xamarin.Forms.Platform.iOS.ViewRenderer.OnModelSet
(Xamarin.Forms.VisualElement)

mono-rt: at Xamarin.Forms.Platform.iOS.ViewRenderer.SetModel
(Xamarin.Forms.VisualElement)

mono-rt: at Xamarin.Forms.Platform.iOS.RendererFactory.GetRenderer
(Xamarin.Forms.VisualElement)

mono-rt: at Xamarin.Forms.Platform.iOS.ViewPackager.HandleChildAdded
(Xamarin.Forms.VisualElement)

mono-rt: at Xamarin.Forms.EnumerableExtensions.ForEach
(System.Collections.Generic.IEnumerable 1<T>,System.Action 1)

mono-rt: at Xamarin.Forms.Platform.iOS.ViewPackager.Load ()

mono-rt: at
Xamarin.Forms.Platform.iOS.ViewRenderer.SetUpEventHandlers
(MonoTouch.UIKit.UIView)

mono-rt: at Xamarin.Forms.Platform.iOS.ViewRenderer.OnModelSet
(Xamarin.Forms.VisualElement)

mono-rt: at Xamarin.Forms.Platform.iOS.ViewRenderer.SetModel
(Xamarin.Forms.VisualElement)

mono-rt: at Xamarin.Forms.Platform.iOS.RendererFactory.GetRenderer
(Xamarin.Forms.VisualElement)

mono-rt: at Xamarin.Forms.Platform.iOS.ViewPackager.HandleChildAdded
(Xamarin.Forms.VisualElement)

mono-rt: at Xamarin.Forms.EnumerableExtensions.ForEach
(System.Collections.Generic.IEnumerable 1<T>,System.Action 1)

mono-rt: at Xamarin.Forms.Platform.iOS.ViewPackager.Load ()

mono-rt: at Xamarin.Forms.Platform.iOS.PageRenderer.ViewDidLoad ()

mono-rt: at (wrapper runtime-invoke)
object.runtime_invoke_void__this__ (object,intptr,intptr,intptr)

mono-rt: at <0xffffffff>

mono-rt: at (wrapper managed-to-native)
MonoTouch.ObjCRuntime.Messaging.IntPtr_objc_msgSendSuper
(intptr,intptr)

mono-rt: at MonoTouch.UIKit.UIViewController.get_View () [0x00030]
in
/Developer/MonoTouch/Source/monotouch/src/build/compat/UIKit/UIViewController.g.cs:2232

mono-rt: at
Xamarin.Forms.Platform.iOS.NavigationRenderer/d__d.MoveNext
()

mono-rt: at
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Startd__d>
(Xamarin.Forms.Platform.iOS.NavigationRenderer/d__damp;)
[0x0001b] in
/Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Runtime.CompilerServices/AsyncTaskMethodBuilder_T.cs:107

mono-rt: at
Xamarin.Forms.Platform.iOS.NavigationRenderer.OnPushAsync
(Xamarin.Forms.Page,bool)

mono-rt: at
Xamarin.Forms.Platform.iOS.NavigationRenderer.PushPageAsync
(Xamarin.Forms.Page,bool)

mono-rt: at
Xamarin.Forms.Platform.iOS.NavigationRenderer.OnPushRequested
(object,Xamarin.Forms.NavigationRequestedEventArgs)

mono-rt: at Xamarin.Forms.NavigationPage/d__c.MoveNext ()

mono-rt: at
System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__c>
(Xamarin.Forms.NavigationPage/d__camp;) [0x0001b] in
/Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Runtime.CompilerServices/AsyncTaskMethodBuilder.cs:107

mono-rt: в Xamarin.Формы.Страница навигации.PushAsync (Xamarin.Forms.Page)

mono-rt: в Xamarin.Формы.NavigationPage / NavigationImpl.OnPushAsync (Xamarin.Forms.Page)

mono-rt: в Xamarin.Формы.NavigationProxy.PushAsync (Xamarin.Forms.Page)

mono-rt: в Xamarin.Формы.NavigationProxy.OnPushAsync (Xamarin.Forms.Page)

mono-rt: в Xamarin.Формы.NavigationProxy.PushAsync (Xamarin.Forms.Page)

mono-rt: в FNBMortgageForms.Общий доступ.Домашняя страница.m__1 (объект, система.EventArgs) [0x00010] в /Users/Projects/FNBMortgageForms/FNBMortgageForms/Views/HomePage.cs:59

mono-rt: в Xamarin.Формы.Кнопка.SendClicked ()

mono-rt: в Xamarin.Формы.Platform.iOS.ButtonRenderer/<>c__DisplayClass1.b__0 (объект, система.EventArgs)

mono-rt: при MonoTouch.UIKit.UIControlEventProxy.Активировано () [0x00007] в /Developer/MonoTouch/Source/monotouch/src/UIKit/UIControl.cs:33

mono-rt: при (вызове среды выполнения оболочки) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr)

mono-rt: при <0xffffffff>

mono-rt: at (оболочка, управляемая для встроенного) MonoTouch.UIKit.UIApplication.UIApplicationMain (int,string[],intptr,intptr)

mono-rt: при MonoTouch.UIKit.UIApplication.Main (строка[],строка,строка) [0x0004c] в /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38

mono-rt: в FNBMortgageForms.iOS.Application.Main (строка []) [0x00008] в /Users/Projects/FNBMortgageForms/iOS/Main.cs:17

mono-rt: at (вызов среды выполнения оболочки) .runtime_invoke_void_object (object,intptr,intptr,intptr)

mono-rt: собственный stacktrace:

mono-rt:

Комментарии:

1. у вас есть элементы, заполненные для вашего taxesPicker ?

2. Вы были правы. Произошла ошибка копирования вставки. Я изменил все, чтобы использовать taxesPicker, кроме той части, где вы добавляете элементы. Спасибо!

3. если это помогло, я дам правильный ответ тогда 🙂

Ответ №1:

Вы заполняете элементы для своего insurancepicker , но я не вижу, чтобы вы заполняли taxespicker . Отчет об ошибках не дает вам этой информации, но для работы a требуется хотя бы один набор элементов Picker .