2011-09-27 13 views
6

私はWPFのテンプレート列を持つDataGridを持っています。グリッド内のいくつかの列は読み取り専用で、フォーカスのあるものはラベル、テキストボックス、チェックボックスなどの代わりに編集可能になります。DataGridタブのナビゲーションをスキップする列

私が達成したいのは、グリッドの列をタブで移動するときに読み取り専用列がスキップされることです。

誰でもこれを達成する方法を知っていますか?

ありがとうございます! ヴラダン


いや、:(

はここで完全な細胞で機能していませんが...

<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

を動作しませんでした... KeyboardNavigation.IsTabStop単独IsTabStopでそれを試してみましたこのようなものが動作します:

<DataGrid.Resources> 
    <Style TargetType="DataGridCell"> 
     <Style.Triggers> 
      <Trigger Property="IsReadOnly" Value="True"> 
       <Setter Property="IsTabStop" Value="False"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</DataGrid.Resources> 
関連する問題