xaml中的式样
<DataGridTemplateColumn Width="2*" Header="零件名称" IsReadOnly="True" CanUserSort="True" SortMemberPath="PartName">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Style="{StaticResource ReadOnlyTextBoxInGird}" Text="{Binding PartName}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
style
<Style x:Key="ReadOnlyTextBoxInGird" TargetType="TextBox" BasedOn="{StaticResource ReadOnlyTextBoxNoWitdthLimit}">
<Setter Property="Foreground" Value="{Binding Foreground, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type DataGridCell}}}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border
x:Name="border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<Grid>
<ScrollViewer
x:Name="PART_ContentHost"
Focusable="false"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden"
Visibility="Collapsed" />
<TextBlock
x:Name="Chrome"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Text="{TemplateBinding Text}"
TextTrimming="CharacterEllipsis" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter TargetName="Chrome" Property="Visibility" Value="Collapsed" />
<Setter TargetName="PART_ContentHost" Property="Visibility" Value="Visible" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>