質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

解決済

Xamarin Prism.Plugin.Popups の動作について

wakasan
wakasan

総合スコア5

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

1回答

0リアクション

0クリップ

1829閲覧

投稿2020/10/27 23:41

Xamarinでポップアップを実装するために
下記ソースで勉強中です。

https://github.com/dansiegel/Prism.Plugin.Popups/tree/master/samples

■質問1
イメージ説明
起動時はMenuPageが起動しますが
一番下の「VIEWA」ボタンを押すと、ViewAにページ遷移します。

MenuPage.xaml

xaml

<Button Text="ViewA" Command="{prism:NavigateTo ViewA}" />

prism7.1より、Commandに prism:NavigateTo と記述することでページ遷移できるのは確認しました。
(当初はviewmodelにDelegateCommandを宣言していました。)
ただ、ViewAにはViewModelもなく
App.xaml.cs の RegisterTypes で Register していませんが、ページ遷移します。

App.xaml.cs

C#

protected override void RegisterTypes(IContainerRegistry containerRegistry) { containerRegistry.RegisterPopupNavigationService(); containerRegistry.RegisterPopupDialogService(); containerRegistry.RegisterForNavigation<TabbedPage>(); containerRegistry.RegisterForNavigation<NavigationPage>(); containerRegistry.RegisterDialog<SampleDialog, SampleDialogViewModel>(); containerRegistry.RegisterDialog<NotAnimatedDialog, SampleDialogViewModel>(); }

試しに自分のサンプルソースで実装してみましたがページ遷移せず
ViewModel の作成と、上記メソッドで Register すれば遷移します。

サンプルソースでは未記述でもページ遷移する理由が分からず、理解につながりませんでした。
ページ遷移する理由と
加えて、ページ遷移の方法が下から上へのアニメーションになる理由も分からないので
ご存じの方は教えて頂きたいです。

■質問2
上記の内容と似ています。
イメージ説明
今回の目的ですが、ポップアップを実装することでした。
ViewA.xaml より、「DISPLAY POPUP」ボタンを押すことでポップアップが立ち上がります。

ViewA.xaml

xaml

<Button Text="Display Popup" Command="{prism:NavigateTo 'PopupView'}" />

今回も質問1同様に
App.xaml.cs の RegisterTypes で PopupView を Register していません。
ただ、以下の処理が関係しているとは思っています。

App.xaml.cs

C#

containerRegistry.RegisterPopupNavigationService(); containerRegistry.RegisterPopupDialogService();

こちらも自分のソースに組み込んだところ動かず
void RegisterTypes() で Register することで動きました。

PopupView もサンプルソースでは「prism:NavigateTo 'PopupView'」と記述するだけで動く理由を教えて頂きたいです。

まとまらない文章で申し訳ありません。
数日悩んでも解決しなかったので、答えが分かる方にアドバイス頂きたいです。
よろしくお願いいたします。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。