だいぶ、 ReactivePropertyを使ったのですが、まだReadOnlyReactivePropertyを使いこなしてませんでした。
QuickConverterもあるが、ConvertBackを使わない表示用だけだったら、こっちの方がプログラムで複雑なロジックもかけます。
CombineLatestも使えるので複数のプロパティの組み合わせもできますね。
BlockPositionText = BlockPosition.Select(p => $"({p.X},{p.Y})").ToReadOnlyReactiveProperty();
MultiBindingを使えますが、使うと
<MultiBinding StringFormat="({0},{1})"> <Binding Path="ViewModel.BlockPosition.Value.X" /> <Binding Path="ViewModel.BlockPosition.Value.Y" /> </MultiBinding>
とコードの量がやや多い気がしますね。