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#でどこまでやれるか。まだまだ挑戦できそうです。