前言:因業務需要對WPF中的DataGrid控制元件中的行數進行統計,同時把統計的行數顯示在列標題上,
如果我們用常規的Binding手段更新DataGridTextColunm的Header的話是不會生效的,因為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,把它替換成你的欄位名即可,
搬運轉發請鏈接注明出處,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/12383.html
標籤:WPF
上一篇:C# WPF 表單更改提示
