2013-07-18 49 views
0

我在中有一个TextBox在WPF数据网格中。它不会继承数据网格本身的外观。例如,当选择或编辑行时,它不显示交替的颜色。如何在wpf datagrid中继承默认的文本框样式?

 <DataGridTemplateColumn> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <TextBox Text="{Binding ...}" />       
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 

它看起来像一个默认的文本框的样式将覆盖该DataGrid。就是有什么办法可以使用DataGrid的风格?

+1

默认情况下,“TextBox”的风格是什么?你的风格或系统? –

+0

我没有undrestand你是什么意思,DataGridTemplateColumn中的文本框应该与DataGridTextColumn中的文本框具有相同的样式。 –

+0

不,它不应该。当你在'DataTemplate'中指定一个强制的'TextBox'时,你会自动覆盖'DataGrid'的默认'DataGridCell'风格。您需要为'DataGridCell'建立单一样式,那么'TextBox'(在'DataGridTemplateColumn'和'DataGridTextColumn'中)将是所有样式。为DataGridCell设置统一样式时,它仍然需要为DataGridRow设置样式,因为选择该行将不起作用。在任何情况下,最好为DataGrid采用预定义的样式并为自己重新制作样式。 –

回答

0

以防万一: -

<DataGrid Background="White" AlternatingRowBackground="#BCD2EE" 
     <DataGrid.CellStyle> 
          <Style TargetType="DataGridCell"> 
           <Style.Triggers> 
            <Trigger Property="IsSelected" Value="True"> 
             <Setter Property="BorderBrush" Value="Transparent" /> 
             <Setter Property="Background" Value="Transparent" /> 
            </Trigger> 
           </Style.Triggers> 
          </Style> 
         </DataGrid.CellStyle> 
.... 
..... 
.... 
    </DataGrid> 

这是我用过一次,你可以根据你的要求设置属性。

This Might help .. :)