2

DataGridColumnを入れて作成したいですButton。簡単そうですね。

それだけ:

  • お客様は、矢印を使用してグリッド列をナビゲートできる必要があります。
  • にフォーカスがDataGridGolumnあるButton場合、Enterキーを押すとコマンドがアクティブになります。(たとえば、ボタンにフォーカスを合わせるためにタブを押す必要はありません)
  • Enterまたはを使用Spaceしてボタンをクリックします

私はで試しましDataGridTemplateColumnCellTemplate

<DataGridTemplateColumn CellStyle="{StaticResource ResourceKey=Button}">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Button Style="{StaticResource LinkButton}" FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}">
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="Click">
                        <i:InvokeCommandAction Command="Delete" />
                    </i:EventTrigger>
                </i:Interaction.Triggers>
                <Image Source="Delete.ico"/>
            </Button>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
4

1 に答える 1

2

セルがフォーカスされるとすぐにボタンにフォーカスしたい場合は、DataGridCell をオンにKeyboardNavigation.IsTabStop設定する必要があります -False

<DataGridTemplateColumn CellStyle="{StaticResource ResourceKey=Button}">
    <DataGridTemplateColumn.CellTemplate>
        ....
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellStyle>
        <Style TargetType="DataGridCell">
            <Setter Property="KeyboardNavigation.IsTabStop" Value="False"/>
        </Style>
     </DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn>

したがって、 を押すTabと、ここがストップ ポイントではないことがわかるDataGridCellので、次のタブ ストップに移動しますButton

Stylein リソースを作成して、同じ動作が必要な場所で使用できます。

于 2012-11-27T17:58:25.703 に答える