Почему не доступен ввод в textbox?

В DataGrid переопределил шаблон ячейки добавив в него TextBox, у которого тоже переопределён шаблон. Один и тот же фрагмент кода, но в .Net Framework исправно работает, а в .Net Core - не работает ввод в TextBox. Отключил всё, что может повлиять - результат не меняется, если добавить новую ячейку и в переопределённый шаблон добавить TextBox из коробки, то работает. Как это поправить?

XAML:

<DataGridTemplateColumn Header="Список объектов"
   Width="*"
   HeaderStyle="{StaticResource CenterDataGridColumnsHeaders}">
      <DataGridTemplateColumn.CellTemplate>
          <DataTemplate>
              <TextBox Text="{Binding Character, UpdateSourceTrigger=PropertyChanged}"
                       BorderThickness="0"
                       TextAlignment="Center"
                       VerticalContentAlignment="Center"
                       Background="Transparent"
                       TextWrapping="Wrap">
                   <TextBox.Style>
                      <Style TargetType="{x:Type TextBox}">
                         <Setter Property="Template">
                            <Setter.Value>
                               <ControlTemplate TargetType="{x:Type TextBox}">
                                  <Border x:Name="border"
                                          BorderBrush="{TemplateBinding BorderBrush}"
                                          BorderThickness="{TemplateBinding BorderThickness}"
                                          SnapsToDevicePixels="True">
                                            <ScrollViewer x:Name="Part_ContentHost"
                                                          Focusable="False"
                                                          HorizontalScrollBarVisibility="Hidden"            
                                                          VerticalScrollBarVisibility="Hidden"/>
                                  </Border>
                               <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                       <Setter Property="Background" Value="White" TargetName="border"/>
                     </Trigger>
                 <Trigger Property="IsKeyboardFocused" Value="True">
            <Setter Property="Background" Value="Transparent" TargetName="border"/>
    </Trigger>
          </ControlTemplate.Triggers>
     </ControlTemplate>
  </Setter.Value>
 </Setter>
</Style>
</TextBox.Style>
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

Ответы (1 шт):

Автор решения: Genas

Как оказалось, нужно было переопределить шаблон ScrollViewer. XAML:

<DataGridTemplateColumn.CellTemplate>
  <DataTemplate>
    <TextBox Text="{Binding Character, UpdateSourceTrigger=PropertyChanged}"
             BorderThickness="0"
             TextAlignment="Center"
             VerticalContentAlignment="Center"
             Background="Transparent"
             TextWrapping="Wrap">
        <TextBox.Style>
          <Style TargetType="{x:Type TextBox}">
            <Setter Property="Template">
               <Setter.Value>
                <ControlTemplate TargetType="{x:Type TextBox}">
                  <Border x:Name="border"
                          BorderBrush="{TemplateBinding BorderBrush}"
                          BorderThickness="{TemplateBinding BorderThickness}"
                          SnapsToDevicePixels="True">
                    <ScrollViewer x:Name="PART_ContentHost" 
                                  Focusable="false" 
                                  HorizontalScrollBarVisibility="Hidden" 
                                  VerticalScrollBarVisibility="Hidden"
                                  Background="{TemplateBinding Background}">
                       <ScrollViewer.ContentTemplate>
                         <DataTemplate>
                          <Grid Background="{Binding Background, ElementName=PART_ContentHost}"                                                        RenderOptions.ClearTypeHint="Enabled">
                           <ContentPresenter Content="{Binding Path=Content, ElementName=PART_ContentHost}"/>
                         </Grid>
                        </DataTemplate>
                      </ScrollViewer.ContentTemplate>
                   </ScrollViewer>
                </Border>
              <ControlTemplate.Triggers>
         <Trigger Property="IsMouseOver" Value="True">
          <Setter Property="Background" Value="White" TargetName="border"/>
         </Trigger>
         <Trigger Property="IsKeyboardFocused" Value="True">
           <Setter Property="Background" Value="Transparent" TargetName="border"/>
         </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>
</TextBox.Style>
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
→ Ссылка