我正在使用 Silverlight 4。
我为 DataGrid 定义了一个 DataTemplate,它允许我成功地显示我喜欢的值。我在这个 DataTemplate 中有一个 Rating 控件,它在 Value 属性上有一个 Converter,就像这样..
<DataTemplate>
<toolkit:Rating Value="{Binding Converter={StaticResource MyConverter}" ItemCount="5" />
</DataTemplate>
当我单步执行代码并进入转换器时,我看到 value 参数不是与模板呈现的行相对应的项目,而是我的 ViewModel,即 DataGrid 本身的 DataContext!
现在,如果我像这样稍微调整一下,
<DataTemplate>
<toolkit:Rating Value="{Binding SomeProperty Converter={StaticResource MyConverter}" ItemCount="5" />
</DataTemplate>
传递给 MyConverter 的值是 DataTemplate 呈现的项目的 SomeProperty。
有谁知道这可能是为什么?如何绑定到模板引用的项目而不是 DataGrid 的 DataContext?