Silverlight4 を使用しています。
DataGrid 用に定義された DataTemplate があり、好みに合わせて値を正常に表示できます。この DataTemplate 内に、Value プロパティに Converter を持つ Rating コントロールがあります。
<DataTemplate>
<toolkit:Rating Value="{Binding Converter={StaticResource MyConverter}" ItemCount="5" />
</DataTemplate>
コードをステップ実行してコンバーターに入ると、value パラメーターがテンプレートによってレンダリングされる行に対応する項目ではなく、DataGrid 自体の DataContext である ViewModel であることがわかります。
さて、これを少し調整すると、
<DataTemplate>
<toolkit:Rating Value="{Binding SomeProperty Converter={StaticResource MyConverter}" ItemCount="5" />
</DataTemplate>
MyConverter に渡される値は、DataTemplate によってレンダリングされるアイテムの SomeProperty です。
これがなぜなのか誰か知っていますか?DataGrid の DataContext ではなく、テンプレートが参照する項目にバインドするにはどうすればよいですか?