<?xml version="1.0" encoding="UTF-8"?> 最近做一个ListView的Style时,发现一个问题, 就是我的GridView的 GridViewColumn 的CellTemplate无论是用StaticResource还是DynamicResource,都是没有效果。
原因: GridViewColumn 用了 DisplayMemberBinding 使得CellTemplate失效。
解决办法: 去掉DisplayMemberBinding, 在CellTemplate的模板中指定Path路径。 比如:
<DataTemplate x:Key="GridViewHeaderTemplate1">
< StackPanel >
< TextBlock Text ="{ Binding Mode =OneWay}"/>
< TextBox TextWrapping ="Wrap" Text ="" MinWidth ="25"/>
</ StackPanel >
</ DataTemplate >
< DataTemplate x : Key ="StatusDataTemplate">
< CheckBox IsChecked ="{ Binding Status }"></ CheckBox >
</ DataTemplate >
< GridViewColumn HeaderTemplate ="{ StaticResource GridViewHeaderTemplate1 }" CellTemplate ="{ StaticResource StatusDataTemplate }" Header ="Status" />
如果你不想用CellTemplate指定Binding的path, 可以通过 < GridViewColumn HeaderTemplate ="{ StaticResource GridViewHeaderTemplate1 }" DisplayMemberBinding ="{ Binding Status }" Header ="Status" />