I decided to change layout in my xaml page from absolut to stacklayout and after that I had nullre.. exception when my app starts running. I commented from one to another all elements in page, even stacklayout, but I still have error. I tried to use Call Stack at first time, but I don't see what I can do with it usefull. Before I started to change my page, all was working well.Besides, it is Master page for MasterDetailPage. Xaml.cs file is empty.Here is xaml now:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" xmlns:b="clr-namespace:Xamarin.Behaviors;assembly=Xamarin.Behaviors" prism:ViewModelLocator.AutowireViewModel="True" x:Class="GitRemote.Views.MasterPage" Title="Necessary"><!--<StackLayout x:Name="MasterMenu" HorizontalOptions="StartAndExpand" VerticalOptions="StartAndExpand"> --><!--<BoxView x:Name="GrayHeader" Color="#CACED2" HorizontalOptions="StartAndExpand" VerticalOptions="Start" HeightRequest="100"/>--><!-- --><!--<Image x:Name="MasterProfileImage" WidthRequest="50" HeightRequest="50" Source="ic_account_circle_white_24dp.png" HorizontalOptions="Start" VerticalOptions="Start" Margin="15, 15, 0, 0"/>--><!-- --><!--<Image x:Name="LogOutImage" WidthRequest="45" HeightRequest="45" Source="ic_menu_logout.png" HorizontalOptions="End" VerticalOptions="Start" Margin="0, 15, 15, 0"/>--><!-- --><!--<Label x:Name="MasterProfileName" Text="GitRemote" FontAttributes="Bold" FontSize="18" HorizontalOptions="Start" VerticalOptions="Start" TextColor="Black" Margin="15, 80, 0, 0"/>--><!-- --><!--<ListView x:Name="MasterPageMenu" SeparatorColor="Transparent" HorizontalOptions="Start" VerticalOptions="Start" Margin="15, 120, 0, 0" ItemsSource="{Binding MenuItems}" SelectedItem="{Binding MenuItemSelectedProperty, Mode=TwoWay}"><ListView.ItemTemplate><DataTemplate><ViewCell><StackLayout Orientation="Horizontal" Spacing="15" Padding="10"><Label Text="{Binding Name}" FontSize="16" VerticalOptions="Center" FontAttributes="Bold"/><Image Source="{Binding ImageSource}" WidthRequest="25" HeightRequest="25" /></StackLayout></ViewCell></DataTemplate></ListView.ItemTemplate><b:Interaction.Behaviors><b:BehaviorCollection><b:EventToCommand EventName="ItemSelected" Command="{Binding MenuItemSelected}"></b:EventToCommand></b:BehaviorCollection></b:Interaction.Behaviors></ListView>--><!--</StackLayout>--></ContentPage>`
**This is how it looked before: **`
<!--Header--><BoxView x:Name="GrayHeader" Style="{StaticResource GrayBoxView}" AbsoluteLayout.LayoutBounds="{Binding MasterProfileGrayHeaderBounds}" AbsoluteLayout.LayoutFlags="All"></BoxView><Image x:Name="MasterProfileImage" WidthRequest="50" HeightRequest="50" Source="ic_account_circle_white_24dp.png" AbsoluteLayout.LayoutBounds="{Binding MasterProfileImageBounds}" AbsoluteLayout.LayoutFlags="None"></Image><Label x:Name="MasterProfileName" Text="GitRemote" FontAttributes="Bold" FontSize="18" AbsoluteLayout.LayoutBounds="{Binding MasterProfileNameBounds}" AbsoluteLayout.LayoutFlags="None"></Label><!--Body--><ListView x:Name="MasterPageMenu" SeparatorColor="Transparent" AbsoluteLayout.LayoutBounds="{Binding MasterMenuBounds}" AbsoluteLayout.LayoutFlags="None" ItemsSource="{Binding MenuItems}" SelectedItem="{Binding MenuItemSelectedProperty, Mode=TwoWay}"><ListView.ItemTemplate><DataTemplate><ViewCell><StackLayout Orientation="Horizontal" Spacing="15" Padding="10"> <Label Text="{Binding Name}" FontSize="16" VerticalOptions="Center" FontAttributes="Bold"/><Image Source="{Binding ImageSource}" WidthRequest="25" HeightRequest="25" /></StackLayout></ViewCell></DataTemplate></ListView.ItemTemplate><b:Interaction.Behaviors><b:BehaviorCollection><b:EventToCommand EventName="ItemSelected" Command="{Binding MenuItemSelected}"></b:EventToCommand></b:BehaviorCollection></b:Interaction.Behaviors></ListView>
Here is my ViewModel now:
using GitRemote.Models;using Prism.Commands;using Prism.Mvvm;using Prism.Navigation;using System.Collections.ObjectModel;namespace GitRemote.ViewModels{public class MasterPageViewModel : BindableBase{ #region Constants private const string GistsPageImagePath = "ic_code_black_24dp.png"; private const string IssueDashboardPageImagePath = "ic_slow_motion_video_black_24dp.png"; private const string BookmarksPageImagePath = "ic_bookmark_black_24dp.png"; private const string ReportAnIssuePageImagePath = "ic_error_outline_black_24dp.png"; #endregion //#region Bindable properties //private Rectangle _masterProfileGrayHeaderBounds; //public Rectangle MasterProfileGrayHeaderBounds //{ // get { return _masterProfileGrayHeaderBounds; } // set { SetProperty(ref _masterProfileGrayHeaderBounds, value); } //} //private Rectangle _masterProfileImageBounds; //public Rectangle MasterProfileImageBounds //{ // get { return _masterProfileImageBounds; } // set { SetProperty(ref _masterProfileImageBounds, value); } //} //private Rectangle _masterProfileNameBounds; //public Rectangle MasterProfileNameBounds //{ // get { return _masterProfileNameBounds; } // set { SetProperty(ref _masterProfileNameBounds, value); } //} //private Rectangle _masterMenuBounds; //public Rectangle MasterMenuBounds //{ // get { return _masterMenuBounds; } // set { SetProperty(ref _masterMenuBounds, value); } //} //private MasterPageMenuItemModel _menuItemSelectedProperty; //public MasterPageMenuItemModel MenuItemSelectedProperty //{ // get { return _menuItemSelectedProperty; } // set { SetProperty(ref _menuItemSelectedProperty, value); } //} ////#endregion //private readonly INavigationService _navigationService; //public ObservableCollection<MasterPageMenuItemModel> MenuItems; //public DelegateCommand MenuItemSelected; public MasterPageViewModel() { //_navigationService = navigationService; //MenuItemSelected = new DelegateCommand(OnMenuItemSelected); //MasterProfileGrayHeaderBounds = new Rectangle(0, 0, 1, 0.175); //MasterProfileImageBounds = new Rectangle(16, 16, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize); //MasterProfileNameBounds = new Rectangle(16, 70, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize); //MasterMenuBounds = new Rectangle(16, 100 + 10, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize); //MenuItems = new ObservableCollection<MasterPageMenuItemModel> //{ // new MasterPageMenuItemModel {Name = "GistsPage", ImageSource = GistsPageImagePath}, // new MasterPageMenuItemModel {Name = "IssueDashboardPage", ImageSource = IssueDashboardPageImagePath}, // new MasterPageMenuItemModel {Name = "BookmarksPage", ImageSource = BookmarksPageImagePath}, // new MasterPageMenuItemModel {Name = "ReportAnIssuePage", ImageSource = ReportAnIssuePageImagePath} //}; } //private void OnMenuItemSelected() //{ // if ( MenuItemSelectedProperty == null ) return; // _navigationService.NavigateAsync(MenuItemSelectedProperty.Name, animated: false); // MenuItemSelectedProperty = null; //}}}
And before:
using GitRemote.Models;using Prism.Commands;using Prism.Mvvm;using Prism.Navigation;using System.Collections.ObjectModel;using Xamarin.Forms;namespace GitRemote.ViewModels{public class MasterPageViewModel : BindableBase{ #region Constants private const string GistsPageImagePath = "ic_code_black_24dp.png"; private const string IssueDashboardPageImagePath = "ic_slow_motion_video_black_24dp.png"; private const string BookmarksPageImagePath = "ic_bookmark_black_24dp.png"; private const string ReportAnIssuePageImagePath = "ic_error_outline_black_24dp.png"; #endregion #region Bindable properties private Rectangle _masterProfileGrayHeaderBounds; public Rectangle MasterProfileGrayHeaderBounds { get { return _masterProfileGrayHeaderBounds; } set { SetProperty(ref _masterProfileGrayHeaderBounds, value); } } private Rectangle _masterProfileImageBounds; public Rectangle MasterProfileImageBounds { get { return _masterProfileImageBounds; } set { SetProperty(ref _masterProfileImageBounds, value); } } private Rectangle _masterProfileNameBounds; public Rectangle MasterProfileNameBounds { get { return _masterProfileNameBounds; } set { SetProperty(ref _masterProfileNameBounds, value); } } private Rectangle _masterMenuBounds; public Rectangle MasterMenuBounds { get { return _masterMenuBounds; } set { SetProperty(ref _masterMenuBounds, value); } } private MasterPageMenuItemModel _menuItemSelectedProperty; public MasterPageMenuItemModel MenuItemSelectedProperty { get { return _menuItemSelectedProperty; } set { SetProperty(ref _menuItemSelectedProperty, value); } } #endregion private readonly INavigationService _navigationService; public ObservableCollection<MasterPageMenuItemModel> MenuItems; public DelegateCommand MenuItemSelected; public MasterPageViewModel(INavigationService navigationService) { _navigationService = navigationService; MenuItemSelected = new DelegateCommand(OnMenuItemSelected); MasterProfileGrayHeaderBounds = new Rectangle(0, 0, 1, 0.175); MasterProfileImageBounds = new Rectangle(16, 16, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize); MasterProfileNameBounds = new Rectangle(16, 70, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize); MasterMenuBounds = new Rectangle(16, 100 + 10, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize); MenuItems = new ObservableCollection<MasterPageMenuItemModel> { new MasterPageMenuItemModel {Name = "GistsPage", ImageSource = GistsPageImagePath}, new MasterPageMenuItemModel {Name = "IssueDashboardPage", ImageSource = IssueDashboardPageImagePath}, new MasterPageMenuItemModel {Name = "BookmarksPage", ImageSource = BookmarksPageImagePath}, new MasterPageMenuItemModel {Name = "ReportAnIssuePage", ImageSource = ReportAnIssuePageImagePath} }; } private void OnMenuItemSelected() { if ( MenuItemSelectedProperty == null ) return; _navigationService.NavigateAsync(MenuItemSelectedProperty.Name, animated: false); MenuItemSelectedProperty = null; }}}
I commented all stuff and I have no idea where and why it occuers.
On image is my call stack. But I don't know what it means and I can't do anything with it.