2011-09-27 56 views
6

Mam datagrid z kolumnami szablonu w WPF. Kilka kolumn w siatce jest tylko do odczytu, inne na fokus stają się edytowalne (zamiast etykiet, pól tekstowych, pól wyboru itp.).Nawigacja w karcie DataGrid pomiń kolumnę

Co chciałbym osiągnąć to to, że tylko do odczytu kolumny są pomijane, gdy przechodzę przez tabele w siatce.

Ktoś wie, jak to osiągnąć?

Dzięki! Vladan


Nie, nie działa :(

Oto pełna komórka ... próbował ją KeyboardNavigation.IsTabStop i IsTabStop sam ... nie działa

<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

Czy wypróbowałeś właściwość 'Enabled' lub' Focusable' Właściwość. nigdy nie próbowałem żadnego z tych na 'DataGrid', ale warto spróbować. – CodingGorilla

Odpowiedz

10

Coś takiego mogłoby zadziałać:

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