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

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

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

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

XAML

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

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

2回答

1593閲覧

WPF+Prismを使用した画面遷移

tomo38

総合スコア15

C#

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

XAML

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

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

1クリップ

投稿2019/01/28 01:29

編集2019/01/28 05:28

WPF+Prismを使用した画面遷移について分からないことがあるので質問させていただきます。

現状出来ていること

以下の図のように、Region2のボタンを押下するとRegion1の画面が切り替わるというプログラムを実装しました。

イメージ説明

やりたいこと

以下の図のようなViewModelの値が変更されたことをバインドし、画面を切り替えるということをやりたいです。ボタン等は使用しません。

イメージ説明

WPF、Prismに関して検索してもこういった実装については情報がありません。このやり方はできないorよくないのでしょうか?

追記

言葉足らずな部分が多かったので追記させていただきます。アプリAとアプリBが存在し、アプリBからの通知をアプリAが受け取ります。
通知を受け取るとアプリAのViewModel内プロパティが変更され、画面を切り替えるということを行いたいと思っています。
Region2は出てきません。

イメージ説明

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Region越えは普通にありますよ。
大体2通りのパターンで実装してます。

1.Region1のViewModelとRegion2のViewModelで共通のModelのインスタンスを参照する。
そのModelの変更通知付きプロパティにRegion2から変更を加え、Region1に反映する。

2.Prism.Events.IEventAggregator をつかってRegion間でイベントの受け渡しをする。
この場合はViewModel又はModelのベースクラス(BindableBaseなど、MVVMインフラを拡張したインフラ)に実装してます。

投稿2019/01/28 02:45

hihijiji

総合スコア4150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomo38

2019/01/28 05:43

回答ありがとうございます。 追記した内容を回答していただいた内容で実現できますでしょうか?
hihijiji

2019/01/28 06:00

プロセスが違う場合はプロセス間通信など、別途通信手段が必要です。
hihijiji

2019/01/28 08:07 編集

こんな感じですね ViewB → ViewModelB → ModelB → 通信インフラ → ModelA → ViewModelA → ViewA
tomo38

2019/01/28 23:07

回答ありがとうございます。 ViewModelA → ViewAの連携についてわからない箇所があるのですが、別の質問を行おうと思います。 ですのでいったん解決済みとさせていただきます。
guest

0

よく質問の意味がわからないのですが、
ViewModelの何らかのプロパティ値の変更時に、RegionName2の要素の表示/非表示を切り替えたい、ということであっていますか?
そうであるとして、
バインディングしたいViewModelのプロパティがbool値なら、
VisibilityにBooleanToVisibilityConverterを使用してbool値をバインディングする、
というのがごく一般的と思います。

[C# WPF]BooleanToVisibilityConverterを使う

投稿2019/01/28 02:24

runny_nose

総合スコア280

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomo38

2019/01/28 05:44

回答ありがとうございます。 質問内容の詳細情報を追記したのでよろしければ確認をお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問