2017-06-26 105 views
1

ここに新しい、WPF DataGridで新しいものがあります。C#WPF Datagrid特定の列の選択セルを無効にする方法

私はDatagridに関するすべてのオープンスレッドで検索していますが、私の問題に対する回答は見つかりません。

私はdatagridにdatasを表示しようとしています。ここまでは順調ですね。 私はユーザーがDataGridでセルを選択できるようにしようとしています。ここまでは順調ですね。 特定の列の選択セルを無効にしたい。

リンクの画像を参照してください。列のセルの1以下の例では、トルクの列または平均列に選択セルを無効にし、ユーザーがCellTemplateを使用することができ、列Mes1Mes2Mes3

Example of the datagrid

答えて

2

特定の列のセルが選択されないようにするには、次のように入力します。 trueにこれらの細胞のIsHitTestVisibleプロパティを設定しますDataGridCellスタイル:

<DataGrid x:Name="dataGrid1"> 
    <DataGrid.Resources> 
     <Style TargetType="{x:Type DataGridCell}"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Column.Header, RelativeSource={RelativeSource Self}}" Value="Torque"> 
        <Setter Property="IsHitTestVisible" Value="False"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding Column.Header, RelativeSource={RelativeSource Self}}" Value="Average"> 
        <Setter Property="IsHitTestVisible" Value="False"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </DataGrid.Resources> 
</DataGrid> 

は私だけのコードで遊んでいます。しかし、私は、例えば、カラムMesの1のためにセルをクリックして、ナビゲートするためにキーボードを使用する場合、列のトルクと平均の細胞が

:-(集中することができ、私はあなたにIsEnabledプロパティを設定する必要があります推測しますfalseその後、:。

<DataTrigger Binding="{Binding Column.Header, RelativeSource={RelativeSource Self}}" Value="Torque"> 
    <Setter Property="IsHitTestVisible" Value="False"/> 
    <Setter Property="IsTabStop" Value="False"/> 
    <Setter Property="IsEnabled" Value="False"/> 
</DataTrigger> 
+0

私はコードで遊んでいます。しかし、私はMesの1例柱のためにセルをクリックし、次に、コラムトルクと平均の細胞をナビゲートするために、キーボードを使用するときに焦点を合わせることができる:-( – JulBat

1

一つ上のセルのみを選択させることができますどのように

<DataGrid ItemsSource="{Binding Customers}" AutoGenerateColumns="False" > 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Name" Binding="{Binding Name}" /> 
     <DataGridTemplateColumn Header="Image" Width="SizeToCells" IsReadOnly="True"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <Image Source="{Binding Image}" /> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
    </DataGrid.Columns> 
</DataGrid> 
関連する問題