WPF DataGrid標題Header Binding失效


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


如果我們用常規的Binding手段更新DataGridTextColunmHeader的話是不會生效的,因為WPF中視覺樹沒有DataGridTextColumn元素來映射它(DataGridTextColumn不是控件,因此它沒有父控件)

錯誤示范:

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

因為視覺樹的機制,我們只需要把列標題視為一個控件即可(注:Header屬性會失效,需要初始化Binding的字段)

                <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,把它替換成你的字段名即可。

搬運轉發請鏈接注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM