Hi. When i close this page, I get a NullReferenceException. Appeared after upgrading to 4.0. If I use ListView, then the problem disappears. If I will not add children to baseGrid, then the problem disappears. Please, help me.
using App.Models.ModelsJsonForMethods;
using System;
using System.Collections.ObjectModel;
using Telerik.XamarinForms.DataControls;
using Telerik.XamarinForms.DataControls.ListView;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace App.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class Page1 : ContentPage
{
RadListView listView;
ObservableCollection<ImportanceInfo> listInfo = new ObservableCollection<ImportanceInfo>();
public Page1()
{
InitializeComponent();
Refresh();
}
private void Refresh()
{
listView = new RadListView
{
ItemsSource = listInfo,
ItemTemplate = new DataTemplate(() =>
{
Label stageLabel = new Label();
stageLabel.HorizontalOptions = LayoutOptions.Center;
stageLabel.VerticalOptions = LayoutOptions.Center;
stageLabel.Margin = new Thickness(15, 0, 0, 0);
stageLabel.FontSize = 18;
stageLabel.SetBinding(Label.TextProperty, new Binding(nameof(ImportanceInfo.StatusName)));
Label briefInformationLabel = new Label();
briefInformationLabel.HorizontalOptions = LayoutOptions.Start;
briefInformationLabel.VerticalOptions = LayoutOptions.Center;
briefInformationLabel.FontSize = 18;
briefInformationLabel.SetBinding(Label.TextProperty, new Binding(nameof(ImportanceInfo.CommentText)));
Label dateLabel = new Label();
dateLabel.HorizontalOptions = LayoutOptions.Center;
dateLabel.VerticalOptions = LayoutOptions.Center;
dateLabel.FontSize = 18;
dateLabel.SetBinding(Label.TextProperty, new Binding(nameof(ImportanceInfo.DateSession)));
Grid grid = new Grid
{
RowDefinitions =
{
new RowDefinition { Height = new GridLength(1, GridUnitType.Star) },
},
ColumnDefinitions =
{
new ColumnDefinition { Width = new GridLength(0.3, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(0.2, GridUnitType.Star) },
},
ColumnSpacing = 3,
RowSpacing = 3
};
grid.Children.Add(stageLabel, 0, 0);
grid.Children.Add(briefInformationLabel, 1, 0);
grid.Children.Add(dateLabel, 2, 0);
return new ListViewTemplateCell
{
View = grid
};
})
};
StackLayout layout = new StackLayout
{
Spacing = 0
};
Grid baseGrid = new Grid
{
RowDefinitions =
{
new RowDefinition { Height = 56 },
},
ColumnDefinitions =
{
new ColumnDefinition { Width = new GridLength(0.3, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(0.2, GridUnitType.Star) }
}
};
baseGrid.Children.Add(new Label { Text = "Stage" }, 0, 0);
baseGrid.Children.Add(new Label { Text = "Info" }, 1, 0);
baseGrid.Children.Add(new Label { Text = "Date" }, 2, 0);
layout.Children.Add(baseGrid);
layout.Children.Add(listView);
ImportanceInfo x = new ImportanceInfo();
x.CommentText = "111";
x.ShortText = "222";
x.Unid = "000";
x.StatusName = "333";
x.DateSession = DateTime.Now.ToString();
listInfo.Add(x);
this.Content = layout;
}
}
}
StackTrace:
at Xamarin.Forms.Platform.Android.PageRenderer.Xamarin.Forms.Platform.Android.IOrderedTraversalController.UpdateTraversalOrder () [0x000ea] in <9392e6d0fb4f4401a79989cd08844170>:0
at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].UpdateParentPageTraversalOrder () [0x00025] in <9392e6d0fb4f4401a79989cd08844170>:0
at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].OnElementPropertyChanged (System.Object sender, System.ComponentModel.PropertyChangedEventArgs e) [0x00116] in <9392e6d0fb4f4401a79989cd08844170>:0
at (wrapper delegate-invoke) <Module>.invoke_void_object_PropertyChangedEventArgs(object,System.ComponentModel.PropertyChangedEventArgs)
at Xamarin.Forms.BindableObject.OnPropertyChanged (System.String propertyName) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\BindableObject.cs:211
at Xamarin.Forms.Element.OnPropertyChanged (System.String propertyName) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Element.cs:353
at Xamarin.Forms.Element.set_Parent (Xamarin.Forms.Element value) [0x00094] in D:\a\1\s\Xamarin.Forms.Core\Element.cs:210
at Xamarin.Forms.Element.OnChildRemoved (Xamarin.Forms.Element child) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Element.cs:335
at Xamarin.Forms.ViewCell.set_View (Xamarin.Forms.View value) [0x00019] in D:\a\1\s\Xamarin.Forms.Core\Cells\ViewCell.cs:25
at Telerik.XamarinForms.DataControlsRenderer.Android.ListView.CellContainerBase.Dispose (System.Boolean disposing) [0x00034] in <aace7404487f477ba4b06b1a101e6de8>:0
at Java.Lang.Object.Dispose () [0x00000] in <ff9f3f3d4e134974a889db1b532c9b6e>:0
at Telerik.XamarinForms.DataControlsRenderer.Android.FormsListViewDataSourceAdapterBase.ClearCachedViews () [0x00023] in <aace7404487f477ba4b06b1a101e6de8>:0
at Telerik.XamarinForms.DataControlsRenderer.Android.RadListViewDataSourceAdapter.ClearCachedViews () [0x00000] in <aace7404487f477ba4b06b1a101e6de8>:0
at Telerik.XamarinForms.DataControlsRenderer.Android.RadListViewDataSourceAdapter.Dispose (System.Boolean disposing) [0x00003] in <aace7404487f477ba4b06b1a101e6de8>:0
at Java.Lang.Object.Dispose () [0x00000] in <ff9f3f3d4e134974a889db1b532c9b6e>:0
at Telerik.XamarinForms.DataControlsRenderer.Android.ListViewRenderer.OnElementDetached (Telerik.XamarinForms.DataControls.RadListView oldElement) [0x0003c] in <aace7404487f477ba4b06b1a101e6de8>:0
at Telerik.XamarinForms.Common.Android.AndroidRendererBase`2[S,T].Dispose (System.Boolean disposing) [0x0001f] in <061fdf8718854839bc5c73d56b04eafa>:0
at Java.Lang.Object.Dispose () [0x00000] in <ff9f3f3d4e134974a889db1b532c9b6e>:0
at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].Dispose (System.Boolean disposing) [0x000a4] in <9392e6d0fb4f4401a79989cd08844170>:0
at Xamarin.Forms.Platform.Android.Platform+DefaultRenderer.Dispose (System.Boolean disposing) [0x0000a] in <9392e6d0fb4f4401a79989cd08844170>:0
at Java.Lang.Object.Dispose () [0x00000] in <ff9f3f3d4e134974a889db1b532c9b6e>:0
at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].Dispose (System.Boolean disposing) [0x000a4] in <9392e6d0fb4f4401a79989cd08844170>:0
at Xamarin.Forms.Platform.Android.PageRenderer.Dispose (System.Boolean disposing) [0x00011] in <9392e6d0fb4f4401a79989cd08844170>:0
at Java.Lang.Object.Dispose () [0x00000] in <ff9f3f3d4e134974a889db1b532c9b6e>:0
at Xamarin.Forms.Platform.Android.AppCompat.FragmentContainer.OnDestroyView () [0x0003c] in <9392e6d0fb4f4401a79989cd08844170>:0
at Android.Support.V4.App.Fragment.n_OnDestroyView (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in <96541ba8a6104b52aadf4218488f978c>:0
at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.52(intptr,intptr)