在自定义单元格模板中继承WPF DataGrid的样式

6

我希望在WPF数据表格中拥有一个自定义列类型,其中的一部分将是用于用户输入的文本框。不幸的是,它似乎没有继承数据表格本身的外观和感觉 - 当行被选择时没有显示交替颜色,当编辑单元格时,相应的单元格并没有以同样的方式高亮显示等等。

           <DataGridTemplateColumn Header="Name" >
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate >
                        <TextBox Text="{Binding DisplayName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" BorderThickness="0" />                          
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

看起来默认文本框的样式会覆盖数据网格的样式,有没有办法只使用数据网格的样式?当然,我可以将文本框样式设置为模仿数据网格的样式,但如果我想添加其他控件,我也必须为每个控件这样做。如果我选择这种方法,如何在单元格模板内基于数据网格行的属性更改样式?例如,是否选中。


我有同样的问题。希望有人能回答这个问题 :) - mahboub_mo
1个回答

1
请将您的XAML更改为在文本框定义中添加以下内容:
BorderThickness="0"      
Background="{Binding RelativeSource={RelativeSource  AncestorType=DataGridRow}, Path=Background}"

这将使文本框继承您的数据网格背景属性。

祝好运


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接