WPF GridView中的CellTemplate失效的原因

最近做一个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" />
posted @ 2013-07-03 11:11  muzizongheng  阅读(820)  评论(0编辑  收藏  举报
如果我们时时忙着展现自己的知识, 将何从忆起成长所需的无知?