Используйте функцию 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