Search code examples
xamarinxamarin-community-toolkit

Navigation does not exist in current context Xamarin Comunity Toolkit Extensions


I want to open a pop up window using xamarin comunity toolkit extensions but when i try to call Navigation it says that it does not exist even if i have included xct.extensions. There is NavigationExtensions but I don't know what I'm supposed to pass as first parameter and it says that my FilterPopup is of incorect type

using Xamarin.CommunityToolkit.Extensions;

namespace Appointments.ViewModels
{
    public class WallViewModel
    {
        public ObservableCollection<Stylist> Stylists { get; set; }

        public AsyncCommand OpenModalFiltersComand;
        public WallViewModel()
        {
            OpenModalFiltersComand = new AsyncCommand(OpenModalFilters);
        }

        async Task OpenModalFilters()
        {
            NavigationExtensions.ShowPopup(AppShell, FilterPopup);
            Navigation    // error
        }
    }
}

My FilterPopup

namespace Appointments.Popups
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class FilterPopup : Popup
    {
        public FilterPopup()
        {
            InitializeComponent();
        }
    }
}

EDIT--------- I'm using shell navigation


Solution

  • ShowPopup takes an INavigation and an instance of a PopupBase. Navigation is a property of Page types, so your VM does not have a reference to it.

    var nav = App.Current.MainPage.Navigation;
    var filter = new FilterPopup();
    
    NavigationExtensions.ShowPopup(nav, filter);