22

Microsoft WPF データグリッドを使用しています。WPF データグリッド DataGridTemplateColumn の奇妙な動作に気付きました。グリッドで templateColumn を使用し、テンプレート列にいくつかのコントロールが含まれている場合、前の列からタブ移動すると、テンプレート列で宣言された最初の要素にフォーカスが自動的に移動しません。フォーカスは最初にテンプレート列の境界線に設定されており、一度タブを押すとフォーカスが最初の列に移動します。この問題の回避策。タブをオフにしたときに、データグリッドのテンプレート列の最初の要素に移動するようにフォーカスを設定するにはどうすればよいですか。

4

4 に答える 4

12

DataGridCell のスタイルを変更することで、この問題を解決しました。

<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
    <Setter Property="IsTabStop" Value="False"/>
于 2013-11-08T15:34:50.243 に答える
7

グリッドの PrepareCellForEdit イベントを処理することで、この問題を解決しました。ここにコードがあります

void HODataGrid_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs e)
{
      UIElement inputElement;
      ///
      /// Texbox is the first control in my template column
      ///
      inputElement = HODataGridHelper.GetVisualChild<TextBox>(e.EditingElement);
      if (inputElement != null)
      {
           Keyboard.Focus(inputElement);
      }
}
于 2010-05-14T15:42:38.573 に答える
2

静的クラスを使用するソリューションと、フォーカスするコントロールの Xaml への 1 つの変更があります。" WPF DataGrid: セルからセルへのタブ移動は、コントロールにフォーカスを設定しません"

于 2010-05-27T17:09:53.110 に答える
1

WPFデータグリッドコードプレックスのディスカッションでリンクを見つけました http://www.codeplex.com/wpf/Thread/View.aspx?ThreadId=35540

vincentsibalに感謝します

于 2009-04-14T02:31:14.277 に答える