2012-03-15 52 views
4

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

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

它看起来像默认文本框的样式覆盖了datagrid的样式;有没有一种方法可以使用datagrid风格?我当然可以将文本框设置为模仿数据网格,但是如果我想添加其他控件,我也必须为每个控件添加其他控件。如果我沿着这条路线走下去,我将如何根据单元模板内datagridrow的属性更改样式? - 例如IsSelected。

+0

我有同样的问题。我希望有人回答这个问题:) – 2013-07-18 08:26:32

回答

0

请改变你的XAML到以下内容添加到您的文本框的定义:

BorderThickness="0"  
Background="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Path=Background}" 

这将使文本框继承你的DataGrid底色财产。

好运