Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf dataGridTextColumn上的Gotfocus和lostfocus不可能_Wpf_Wpfdatagrid_Lost Focus - Fatal编程技术网

Wpf dataGridTextColumn上的Gotfocus和lostfocus不可能

Wpf dataGridTextColumn上的Gotfocus和lostfocus不可能,wpf,wpfdatagrid,lost-focus,Wpf,Wpfdatagrid,Lost Focus,我有一个WPF数据网格: <DataGrid ItemsSource="{DynamicResource TNMaps}" RowHeaderWidth="0" Width="680" AutoGenerateColumns="False" RowHeight="35" SelectionUnit="Cell" > <DataGrid.Columns> <DataGridTextColumn Header="Test Name" W

我有一个WPF数据网格:

<DataGrid ItemsSource="{DynamicResource TNMaps}"  RowHeaderWidth="0" Width="680" AutoGenerateColumns="False" RowHeight="35" SelectionUnit="Cell"  >
     <DataGrid.Columns>
          <DataGridTextColumn Header="Test Name" Width="2*" Binding="{Binding TestName}" IsReadOnly="True" FontSize="20"/>
          <DataGridTextColumn Header="LIS Name" Width="*" Binding="{Binding LISName}"  FontSize="20" />
     </DataGrid.Columns> 
     <DataGrid.ColumnHeaderStyle>
          <Style TargetType="DataGridColumnHeader">
               <Setter Property="FontSize" Value="20"/>
          </Style>
     </DataGrid.ColumnHeaderStyle>
</DataGrid>

用户可以编辑dataGridTextcolumn中标题名为“LIS Name”的单元格。我已尝试在此datagridTextColumn上设置gotfocus和lostfocus事件,但这些事件不可用。 我需要这样做,以便当用户尝试编辑此列中的单元格时(对于触摸版),我可以显示键盘


是否有其他方法可以做到这一点?

当您需要在编辑、设置焦点等过程中对单元格与单元格进行更精确的控制时,我建议使用DataGridTemplateColumns并定义单元格和编辑单元格模板,而不是使用DataGridTextColumn:

<DataGrid ItemsSource="{DynamicResource TNMaps}"  RowHeaderWidth="0" Width="680" AutoGenerateColumns="False" RowHeight="35" SelectionUnit="Cell"  >
 <DataGrid.Columns>
    <DataGridTemplateColumn>           
         <DataGridTemplateColumn.CellTemplate>
                  <DataTemplate>
                        <TextBlock Text="{Binding TestName}" GotFocus="OnCellGotFocus"/>
                  </DataTemplate>
         </DataGridTemplateColumn.CellTemplate>
         <DataGridTemplateColumn.CellEditingTemplate>
              <DataTemplate>
                <TextBox Text="{Binding TestName}"  GotFocus="OnCellInEditGotFocus"/>
              </DataTemplate>
          </DataGridTemplateColumn.CellEditingTemplate>
     </DataGridTemplateColumn>

在put TextBlock vs TextBox中,但您可以执行任何操作,并获得可视元素提供的完全控制。您还可以强制网格进入编辑模式,并在行选择、按键等上显示编辑模板