Используйте функцию PopupExtensions.ShowPopupAsync в пользовательском элементе управления в MAUI.

Я создал настраиваемый элемент управления в MAUI, который должен работать, если пользователь выбирает его щелчком или касанием, всплывающее окно должно отображаться с некоторым содержимым, скажем, например, с калькулятором вместо клавиатуры. Я использую CommunityToolkit.Maui. Но предложение

      var popup = new PickerControl();
var result = await PopupExtensions.ShowPopupAsync<PickerControl>(this, popup);

скиньте мне ошибку, потому чтоthisвнутри управления и ожидаетPage, поэтому нужно знать, как обрабатывать страницу или родительскую страницу в одном элементе управления. Элемент управления Picker — это всплывающее окно с содержимым. Код:

      public partial class EntryCalculator : Frame
{
    TapGestureRecognizer _tapGestureRecognizer;
    public EntryCalculator()
    {
        InitializeComponent();
      }
///Properties here

    private void Initialize()
    {
        _tapGestureRecognizer = new TapGestureRecognizer();
    }

    
    private async static void IsDisplayPickerPropertyChanged(BindableObject bindable, object oldValue, object newValue)
    {
        var controls = (EntryCalculator)bindable;
        if (newValue != null)
        {
            if ((bool)newValue)
            {
                var popup = new PickerControl();
                var response = PopupExtensions.ShowPopupAsync<PickerControl>(this, popup);
                
               if (response != null && response is decimal)
                {
                    controls.Value = (decimal)response;
                }               
            }
        }
    } 
///... other methods

0 ответов

Другие вопросы по тегам