如何使用带参数的转换器在数据网格中设置标头?

问题描述 投票:0回答:1

我想用一个使用参数的转换器设置列的标题。转换器的值必须是datagrid的ItemsSource。

我知道要修改标题的文本我需要设置textblock的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>

但是我更喜欢使用转换器。但我不知道如何在列标题的文本块内使用转换器。此转换器需要获取作为datagrid源的对象的值。

谢谢。

wpf datagrid ivalueconverter
1个回答
1
投票

您可以通过将DataGrid指定为ItemsSource来获得RelativeSource<DataGridTextColumn> <DataGridTextColumn.Header> <TextBlock Text="{Binding Path=ItemsSource, RelativeSource={RelativeSource AncestorType=DataGrid, Mode=FindAncestor}, Converter={StaticResource ValueConverter}}"/> </DataGridTextColumn.Header> </DataGridTextColumn>

试试这个

qazxswpoi
© www.soinside.com 2019 - 2024. All rights reserved.