WPF DataGrid標題Header Binding失效

前言:因業務須要對WPF中的DataGrid控件中的行數進行統計,同時把統計的行數顯示在列標題上spa


若是咱們用常規的Binding手段更新DataGridTextColunmHeader的話是不會生效的,由於WPF中視覺樹沒有DataGridTextColumn元素來映射它(DataGridTextColumn不是控件,所以它沒有父控件)code

錯誤示範:blog

<DataGridTextColumn Binding="{Binding Test}" Header="{Binding ColName}"/>

由於視覺樹的機制,咱們只須要把列標題視爲一個控件便可(注:Header屬性會失效,須要初始化Binding的字段)io

                <DataGridTextColumn Binding="{Binding Test}"Header="列名">
                    <DataGridTextColumn.HeaderTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding DataContext.ColName,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay,
                       RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
                        </DataTemplate>
                    </DataGridTextColumn.HeaderTemplate>
                </DataGridTextColumn>

我Binding的字段名是ColName,把它替換成你的字段名便可。class

相關文章
相關標籤/搜索