ボタンをクリックすると、モーダルページからメインページにデータを転送する必要があります。しかし、何かがうまくいかない。モーダルフォームからメインにデータを転送するにはどうすればいいですか? Xamarin.Forms
それはモーダルウィンドウが閉じられるまで行の後にそこに待つべきであることが必要である:
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
);
ModalPage:
void OnClicked(object sender, EventArgs)
{
MessagingCenter.Send(this, "AnchorsName", ancorName.Text); // my data
await Navigation.PopModalAsync();
}
私を助けてください。
オブジェクト参照をModalPageのコンストラクタに渡すことができます。次にModalPageでこのオブジェクトを操作し、それを変更します。そして、ModelPageが閉じられた後、MainPageのメソッド(ModalPageを呼び出した場所)が結果を返します。 これは最も簡単な解決策の1つです。 – KamikyIT