1

我想使用 xamarin 社区工具包扩展打开一个弹出窗口,但是当我尝试调用 Navigation 时,它说它不存在,即使我包含了 xct.extensions。有 NavigationExtensions 但我不知道我应该作为第一个参数传递什么,它说我的 FilterPopup 类型不正确

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
        }
    }
}

我的过滤器弹出窗口

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

编辑---------我正在使用外壳导航

4

1 回答 1

1

ShowPopup接受 aINavigation和a的一个实例PopupBaseNavigationPage类型的属性,因此您的 VM 没有对它的引用。

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

NavigationExtensions.ShowPopup(nav, filter);
于 2021-06-27T15:56:54.303 回答