PowerAppsのキャンバスアプリで下記の動きを実装しようと
手こずったので備忘としてメモ。
【画面構成とやりたいこと】
- Screen1とScreen2の2画面構成
- Screen1はユーザー一覧 (userTableというリストをギャラリー表示)
- Screen2はユーザーの詳細情報 (userDetailというリストをギャラリー表示)
- Screen1からボタンを押すとScreen2へ画面遷移
- Screen1から2に遷移するときにユーザーアドレスを引き渡して
Screen2のコンボボックスで選択された状態にする
- Screen1から2に遷移するときにユーザーアドレスを引き渡して
【メモ】
<Screen1側>
- Screen1の画面遷移ボタンには
Navigate(Screen2,CoverRight,{userMail:ThisItem.Mail})
※ユーザー一覧(userTable)をギャラリー表示している想定。
※userMailという変数で選択ユーザーのメールアドレスを画面に引き渡し
<Screen2側>
- comboboxのデータソースはuserTableとしています
- 初期値はDefaultじゃなくてDefaultSelectedItemsに設定する
まずここでつまずく。。 - 初期値として設定する値について
単純に初期値として変数 userMail を与えても、コンボボックスに
メールアドレスが張り付いただけで選択された状態にはならず。。
DefaultSelectedItems: userMail (機能せず・・・)
ということで初期値のプロパティ定義を下記のとおり変更。
DefaultSelectedItems: userMail
⇒レコード型で値が渡されてくるならこれで。
DefaultSelectedItems: [userMail]
⇒引き渡す変数が文字列で来るならこの形でも。
最初は引き渡された変数の値をlookupで検索して
その結果レコードを初期値にするってしてました。
DefaultSelectedItems: Lookup(userTable,mail=UserMail)
⇒コンボボックスのデータソースに対して、
引き渡されたメールアドレスと一致するレコードを検索して、
その結果を初期値にする場合。
プロパティのデータ型に合わせて適切な値をいれるってのが、当たり前と言えば当たり前なんでしょうけど。。
いまいち公式のドキュメントの読み込みとか理解が出来てないんですよね。。
欲しい情報ピンポイントで探すのが難しい。
画面間で引数渡すのは特に問題なかったんですが、
どうにも遷移先画面のコンボボックス初期値の考え方とかでつまずいた件でした。