xaml は難しいなぁ。xaml でもできるといっても PG で解決した方が簡単だったりするしなぁ。MVVM すると直近の解決法としては良くても長期的にはマイナス要素になったりするし。
UWP のアプリケーションを書く機会があるかは分からないけど windows のアプリケーションを書くのが面白くなってきたので情報収集。
従来のデータバインディングでは DataContext が Path の起点でしたがコンパイル時データバインディングでは Page 自身が Path の起点になります。従来のデータバインディングでは、実行時にリフレクションで解決していたため、存在しないプロパティなども指定できましたが、コンパイル時データバインディングでは、コンパイル時にそこらへんの解決を行うため、きちんと型に存在するプロパティなどを指定しないとコンパイルエラーになります。
コンパイル時データバインディングでは、 OneTime がデフォルトになります。
イベントに対して {x:Bind ViewModel.Great } と書くことでイベントに直接メソッドを紐付けることができます。
データバインディングの Path をコンパイル時に解決してくれるのはいいな。微妙に Path を間違えて時間を浪費することがあるし、構成変更した時に無駄に残ってしまった Path が実は残ってたりとかあってパフォーマンスが落ちてるケースがある。