てぃぐれのプログラマwiki

ワクワクに従う

親?画面に値を渡す方法【Blazor】

経緯

Mainlayoutに表示したい項目等があり、子画面でのアクションによってその項目の値を変えたい場合、どのような方法があるのかすごく迷ったり戦ったりしたので、記録しておきたい。

 

CascadingValueで渡す

CascadingValueは子画面から渡すのが難しいというか、自分にその技術がなく断念した。

 

static変数を使う

Mainlayout.〇〇 = 1;

Mainlayoutでstatic変数を定義することで、直接値を渡すことができるようになる。

Mainlayoutでオブジェクトをバシバシ作るわけでもなかったので、自分のプロジェクトでは使い勝手が良かった。

 

EventCallbackを使う

親画面と小画面という意味ではそれは可能なのではと思った。

@bodyで定義しているところで、特定のurlを条件に@bodyではなく、画面のクラスを定義することで、その小画面にParameterを設定することができた。

ではイベントコールバックもできるのはないかと思いやってみた。

イベントコールバックを呼んだ場所としてはafterrenderingではあるが、エラーが出てしまい、一旦断念。

なんか頑張ればできそうな気がしなくもない。Mainlayoutでなければ一番使う気がする。

 

疑問

@bodyにイベントコールバックの変数とかパラメータとか渡すことできないのかな