2011-09-27 64 views
6

我有一个WPF中的模板列datagrid。网格中的几列是只读的,其他焦点上的文本可以编辑(而不是标签,文本框,复选框等)。DataGrid选项卡导航跳过列

我想实现的是只读列通过网格的列时跳过。

任何人都知道如何做到这一点?

谢谢! 弗拉丹


不,不工作:(

下面是完整的细胞......尝试过与KeyboardNavigation.IsTabStop独自IsTabStop ......没有工作

<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

你试过'Enabled'属性或'Focusable'属性。从来没有尝试过'DataGrid'上的那些,但它值得一试。 – CodingGorilla

回答

10

像这样的东西会工作:

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