Blazorを使ってみた(3)
腰痛で倒れていました。不甲斐ない…。
どこまで再利用性や汎用性を高められるかと思って、どうせならXAMLでMVVMをするときのように書きたいと考え、 Resources.cshtml などを作り始めています。
@using Foo.Shared; @switch (DataContext) { case User user: <User DataContext=@user></User> break; } @functions { [Parameter] object DataContext { get; set; } }
丁度C#7.xでパターンマッチングがとても便利になったので、switch文でDataContextに応じた展開がきれいに書けるようになっているのです。パターンマッチング自体はDataTemplateSelector並に柔軟な記述が可能なので、DataTemplateSelectorはほぼ不要になりそうです。
これに加えてContentControl.cshtmlやContetnPresenter.cshtml のようなものを作れば、XAMLに近い記述感をHTML上で実現できる日も遠くありません。
現時点でエラーは出ていないのですが、万全に動くものとなるかどうかはこれから確認します。
JavaScriptをどこまで使わないことができるか。 いや、C#でどこまでやれるか。まだまだ挑戦できそうです。