Как использовать конвертер с параметром для установки заголовка в сетке данных? - PullRequest
0 голосов
/ 01 апреля 2019

Я хотел бы установить заголовок столбца с конвертером, который использует параметр.Значением конвертера должен быть ItemsSource таблицы данных.

Я знаю, что для изменения текста заголовка мне нужно установить свойство Text для текстового блока.

С этим кодомЯ могу использовать свойство в модели представления моего представления, чтобы установить заголовок:

<DataGridTextColumn Binding="{Binding MyProperty}" Width="2.8cm">
    <DataGridTextColumn.Header>
        <TextBlock Text="{Binding DataContext.MyPropertyInViewModel, 
                    RelativeSource={RelativeSource AncestorType={x:Type local:MyView}}}"/>
    </DataGridTextColumn.Header>
</DataGridTextColumn>

Однако я предпочитаю использовать конвертер для этого.Но я не знаю, как использовать конвертер внутри текстового блока заголовка столбца.Этот конвертер должен получить в качестве значения объект, являющийся источником таблицы данных.

Спасибо.

1 Ответ

1 голос
/ 02 апреля 2019

Вы можете получить DataGrid ItemsSource, указав его RelativeSource.

Попробуйте это

<DataGridTextColumn>
    <DataGridTextColumn.Header>
        <TextBlock Text="{Binding Path=ItemsSource, 
                                  RelativeSource={RelativeSource AncestorType=DataGrid, 
                                                                 Mode=FindAncestor}, 
                                  Converter={StaticResource ValueConverter}}"/>
    </DataGridTextColumn.Header>
</DataGridTextColumn>
...