绑定到DataGrid ControlTemplate中的DataGrid ItemsSource

时间:2013-01-30 17:06:02

标签: c# binding silverlight-4.0 mvvm-light

为SL DataGrid实现摘要标题行我找不到绑定到DataGrids ItemsSource属性的方法(并应用IValueConverter)。

当简单地指定Binding时,Converter接收ViewModel作为DataGrids DataContext,但我不想将ViewModel耦合到我的Converter:

<!-- somewhere in my DataGrid ControlTemplate -->
<sdk:DataGridCell Content="{Binding Converter={StaticResource SummaryRow}}" />

我尝试创建RelativeSource,但xaml抱怨我在这种情况下无法使用AncestorType

<sdk:DataGridCell Content="{Binding RelativeSource={RelativeSource FindAncestor AncestorType={x:Type DataGrid}}, Converter={StaticResource SummaryRow}}" />

我的DataGrid本身绑定了一个CollectionViewSource来处理分组和排序。

我已经实现了使用第一种方法显示DataGridRowGroupHeader的列和,并且相应的Converter收到CollectionViewGroup,我可以从中检索项目而不会耦合到ViewModel。

1 个答案:

答案 0 :(得分:0)

我找到了实现此目的的正确方法,并将绑定到DataGrids ListCollectionView的{​​{1}}传递到我自定义ItemsSource内的IValueConverter

ControlTemplate