2011-09-27 20 views
6

Tengo una cuadrícula de datos con columnas de plantilla en WPF. Un par de columnas en la cuadrícula son de solo lectura, otras en foco se pueden editar (en lugar de etiquetas, cuadros de texto, casillas de verificación y similares).Ficha DataGrid columna de omisión de navegación

Lo que me gustaría lograr es que las columnas de solo lectura se omitan cuando estoy tabulando a través de las columnas de la grilla.

¿Alguien sabe cómo lograr esto?

Gracias! Vladan


No, no trabajar :(

Aquí es la célula completa ... intentó con KeyboardNavigation.IsTabStop y IsTabStop solo ... no funcionó

<DataGridTemplateColumn Header="{x:Static local:MainWindowResources.gasNameLabel}" Width="*" MinWidth="150" IsReadOnly="True"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <ContentControl Content="{Binding Path=Name}" ContentTemplate="{StaticResource DataGridTextBoxView}" /> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
    <DataGridTemplateColumn.CellStyle> 
     <Style TargetType="{x:Type DataGridCell}"> 
      <Style.Triggers> 
       <Trigger Property="IsReadOnly" Value="true"> 
        <Setter Property="KeyboardNavigation.IsTabStop" Value="False"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </DataGridTemplateColumn.CellStyle> 
</DataGridTemplateColumn> 
+0

¿Has probado la propiedad 'Enabled' o la propiedad' Focusable'. nunca probé ninguno de los que están en 'DataGrid', pero vale la pena intentarlo. – CodingGorilla

Respuesta

10

Algo como esto funcionaría:

<DataGrid.Resources> 
    <Style TargetType="DataGridCell"> 
     <Style.Triggers> 
      <Trigger Property="IsReadOnly" Value="True"> 
       <Setter Property="IsTabStop" Value="False"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</DataGrid.Resources> 
Cuestiones relacionadas