Wpf 带有样式的DataGrid数据绑定问题

Wpf 带有样式的DataGrid数据绑定问题,wpf,data-binding,datagrid,Wpf,Data Binding,Datagrid,我有一个WPF数据网格,我想对所有单元格应用文本换行,因此我定义了以下样式: <DataGrid.CellStyle> <Style TargetType="DataGridCell"> <Setter Property="ContentTemplate"> <Setter.Value> &

我有一个WPF数据网格,我想对所有单元格应用文本换行,因此我定义了以下样式:

        <DataGrid.CellStyle>
            <Style TargetType="DataGridCell">
                <Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <TextBlock TextWrapping="Wrap" FontSize="15" Text="{Binding}"  VerticalAlignment="Center" 
                                 HorizontalAlignment="Center" ></TextBlock>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DataGrid.CellStyle>
        <DataGrid.Columns>

            <DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="95" />
            <DataGridTextColumn Header="Address" Binding="{Binding Address}" Width="95"  />
            <DataGridTextColumn Header="Category" Binding="{Binding Category}" Width="95" />

        </DataGrid.Columns>
但是,我在样式
Text=“{binding}”
中设置的绑定表达式出现了一些问题,最终导致:

显然,绑定表达式
Text=“{binding}”
失败了,我知道这一点,因为当我删除样式时,一切都很正常。我该如何着手解决这个问题

提前感谢。

这将有助于:

<Style x:Key="MyGrid" TargetType="{x:Type DataGridCell}">    
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type DataGridCell}">
               <Border x:Name="MyBorder" >
                  <TextBlock Background="Transparent" TextWrapping="WrapWithOverflow"
                     TextTrimming="CharacterEllipsis" Height="auto" Width="auto"> 
                   <ContentPresenter 
                     Content="{TemplateBinding Property=ContentControl.Content}" 
                     ContentTemplate="{TemplateBinding Property=ContentControl.Content}"/>
                  </TextBlock>
               </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>


取自。

设置
DataGridColumn.Binding
属性不会为每个
DataGridCell
设置
DataContext
DataContext
仍然等于整行的
DataContext

从绑定
ContentTemplate
切换到绑定
Template
,然后您就可以访问
ContentPresenter

<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="DataGridCell">
            <TextBlock TextWrapping="Wrap" FontSize="15" 
                       VerticalAlignment="Center" HorizontalAlignment="Center">

                <ContentPresenter Content="{TemplateBinding Content}" />

            </TextBlock>
        </ControlTemplate>
    </Setter.Value>
</Setter>

<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="DataGridCell">
            <TextBlock TextWrapping="Wrap" FontSize="15" 
                       VerticalAlignment="Center" HorizontalAlignment="Center">

                <ContentPresenter Content="{TemplateBinding Content}" />

            </TextBlock>
        </ControlTemplate>
    </Setter.Value>
</Setter>