ヒスイをWPF/MVVMに対応させたくて色々と調査したり設計を構想したりしているのだけれど、なかなか難しくて前に進んでいる実感がない。まるで着地点が見えない。まだまだ苦労しそうだ。

とりあえず目指す地点として定めた目標としては、次のような雰囲気でXAMLが書けたらいいんじゃね?というところ。これでViewModelの保持するオブジェクトがOpenGLの3Dビューに描画できるようになったら割りとクールなんじゃないかと思う。

<hisui:ViewControl>
  <hisui:SceneGraph ScenesSource="{Binding Path=...}">
    <hisui.SceneGraph.SceneTemplate>
      ...
    </hisui.SceneGraph.SceneTemplate>
  </hisui:SceneGraph>
</hisui:ViewControl>

で、早速つまずいた。

まず DataContext プロパティは継承されて Binding の Source は省略できると期待していたけど、これは出来ないようだ。SceneGraph クラスを FrameworkContentElement の派生クラスとして定義すれば DataContext プロパティも継承されるようだけど、そのためだけに SceneGraph クラスを FrameworkContentElement から派生させるのは正しくないように思われる。

次によく分からんのが、ScenesSource と SceneTemplate の周辺。これはもちろん、ListView や TreeView の ItemsSource/ItemTemplate を真似た設計目標だ。でも実際に実装しようとしたらどういうコードを書けば良いのかしらん?

くそう、明日が見えないぜ。