2013-01-30 2 views
-5

Реализация строки сводного заголовка для SL DataGrid Я не могу найти способ привязки к свойству DataGrids ItemsSource (и применить IValueConverter).Привязка к элементам DataGridSource в DataGrid ControlTemplate

Когда просто указав Binding Преобразователь получает ViewModel как DataGrids DataContext, но я предпочел бы не соедини ViewModel к моему конвертер:

<!-- 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 с использованием первого подхода, и соответствующий конвертер получает CollectionViewGroup, из которого я могу получить элементы без связи с ViewModel.

+0

Downvoter: уход объяснить, что случилось с моим вопросом? – Filburt

ответ

0

я понял, правильный путь для достижения этой цели и скоротать ListCollectionView связанные с DataGrids ItemsSource к IValueConverter внутри моего индивидуальных ControlTemplate:

<Style TargetType="sdk:DataGrid"> 
    <Setter Property="Template"> 
    <Setter.Value> 
    <ControlTemplate TargetType="sdk:DataGrid"> 

    <!-- Rest of ControlTemplate xaml omitted --> 

    <sdk:DataGridCell 
     Content="{Binding Path=ItemsSource, 
          RelativeSource={RelativeSource}, 
          Converter={StaticResource SummaryRow}}" /> 
    <!-- ... --> 

    </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 
Смежные вопросы