gpt4 book ai didi

c# - 如何将数据从模态形式传输到主要形式? Xamarin.Forms

转载 作者:太空宇宙 更新时间:2023-11-03 22:56:38 25 4
gpt4 key购买 nike

我需要在单击按钮时将数据从模态页面传输到主页面。但是有些事情没有解决。

有必要在行后等待,直到模态窗口关闭:

await Navigation.PushModalAsync(modal);                         

主页:

string AncorName { get; set; }
Map map = new Map();

public MainPage()
{
AddCircle();
}

void AddCircle()
{
map.MapClicked += async (sender, e) =>
{
Subscribe();
var modal = new ModalPage();
await Navigation.PushModalAsync(modal);

var circle = CircleFactory.GetCircle(DataConfig.CENTER, AncorName); // AncorName = null
map.Circles.Add(circle);

circle.Clicked += (circleSender, ev) =>
{
var c = circleSender as Circle;
DisplayAlert("Clicked on anchor", c.Tag as string, "Close");
};
};
}

void Subscribe() =>
MessagingCenter.Subscribe<Page, string>(this, "AnchorsName", (sender, arg) =>
AncorName = arg // data with modal page
);

模态页面:

void OnClicked(object sender, EventArgs)
{
MessagingCenter.Send(this, "AnchorsName", ancorName.Text); // my data
await Navigation.PopModalAsync();
}

请帮帮我

最佳答案

我建议使用 MessagingCenter 在页面之间发送数据。您的模态“发送”数据到“订阅”消息的第一页。

Here你可以找到一些信息。

否则,将对象传递给“模态”构造函数并修改它。当您关闭模态页面时,您应该在对象中找到修改后的数据。

您应该在 OnAppearing 中订阅,在 OnDisappearing 中取消订阅。

MessagingCenter.Subscribe<ModalPage, string>(this, "AnchorsName", (sender, arg) =>
AncorName = arg // data with modal page
);

您可以尝试更改您的发送方式

MessagingCenter.Send<ModalPage, string>(this, "AnchorsName", ancorName.Text); // my data

关于c# - 如何将数据从模态形式传输到主要形式? Xamarin.Forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45079206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com