Xamarin.Forms用のPrismでRegionを設定する方法(エラーを回避する方法)
はじめに
Xamarin.Forms用のPrismでRegionを設定する方法について解説します。
(検索するといくつか解説記事がヒットするのですが、そのままでは使えなかったです。。。)
WPF用のPrismなどは以前からRegionが使えたのですが、Xamarin.Forms用のPrismは8.0から使えるようになったようです。
Prism 8.0 RTM
NEW FEATURE - Region support for Prism.Forms is HERE!!!
参考にしたページ
環境
- Prism.Forms.Regions : 8.1.97
- Xamarin.Forms : 5.0.0.2083
- Prism.Unity.Forms : 8.1.97
結論
参考にしたページのようにRegionを指定することを考えます。
prism:RegionManager.RegionName="ContentRegion"
この場合、Xaml内の名前空間の指定を以下のように変更する必要があります。
(変更前)
xmlns:prism="http://prismlibrary.com"
(変更後)
xmlns:prism="clr-namespace:Prism.Regions.Xaml;assembly=Prism.Forms.Regions"
※実際には以下のように分けた方がが良いと思います。
xmlns:prism="http://prismlibrary.com"
xmlns:region="clr-namespace:Prism.Regions.Xaml;assembly=Prism.Forms.Regions"
region:RegionManager.RegionName="ContentRegion"
発生していたエラー
Error XFC0000: Cannot resolve type "RegionManager". (XFC0000) (AppName) XamlC
原因
エラーに書かれている通り、RegionManager
が見つからないことが原因です。
RegionManager
を見つけるには、適切な名前空間を使えるようにする必要があると思い、RegionManager
を適当な箇所でインスタンス化して見ると以下のような表示が見えました。
上図より、RegionManager
はPrism.Regions.Xaml
名前空間内にいることが判明したのであとはこの名前空間が使えるようにXaml内に記載してあげればOKです。
Author And Source
この問題について(Xamarin.Forms用のPrismでRegionを設定する方法(エラーを回避する方法)), 我々は、より多くの情報をここで見つけました https://qiita.com/panda531/items/3519d1b018b80093f48e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .