親?画面に値を渡す方法【Blazor】
経緯
Mainlayoutに表示したい項目等があり、子画面でのアクションによってその項目の値を変えたい場合、どのような方法があるのかすごく迷ったり戦ったりしたので、記録しておきたい。
CascadingValueで渡す
CascadingValueは子画面から渡すのが難しいというか、自分にその技術がなく断念した。
static変数を使う
Mainlayout.〇〇 = 1;
Mainlayoutでstatic変数を定義することで、直接値を渡すことができるようになる。
Mainlayoutでオブジェクトをバシバシ作るわけでもなかったので、自分のプロジェクトでは使い勝手が良かった。
EventCallbackを使う
親画面と小画面という意味ではそれは可能なのではと思った。
@bodyで定義しているところで、特定のurlを条件に@bodyではなく、画面のクラスを定義することで、その小画面にParameterを設定することができた。
ではイベントコールバックもできるのはないかと思いやってみた。
イベントコールバックを呼んだ場所としてはafterrenderingではあるが、エラーが出てしまい、一旦断念。
なんか頑張ればできそうな気がしなくもない。Mainlayoutでなければ一番使う気がする。
疑問
@bodyにイベントコールバックの変数とかパラメータとか渡すことできないのかな