2011-09-27 61 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>