2012-04-24 72 views
0

ヒットしたときにDataGridから次のコントロールにフォーカスを移動する方法最後の行にを入力します。これはnullです。EnterキーでDataGridからフォーカスを移動WPF MVVMの最後の行を押しますか?

私は、このイベントのあなたのデータグリッドの上キーとしてWPF MVVM

+0

私の最後の編集を参照してくださいありがとう –

+0

ユーザーコントロールを作成する場合、データグリッドから派生したユーザーコントロールで問題はありません。xamlコードでデータグリッドを選択することができます。プロパティエクスプローラーイベントの後にそれをダブルクリックしてください...それはあなたのためのイベントを作成しますコード –

+0

私はコードビハインドを使用していないので、それはmvvmです。 –

答えて

2
private void dataGrid1_KeyUp(object sender, KeyEventArgs e) 
     { 
      DependencyObject dep = (DependencyObject)e.OriginalSource; 
      //here we find the Row is selected 
      //then we check is the row last row 

      while ((dep != null) && !(dep is DataGridRow) && !(dep is DataGridColumnHeader)) 
      { 
       dep = VisualTreeHelper.GetParent(dep); 
      } 

      if (dep == null) 
       return; 

      if (dep is DataGridRow) 
      { 
       DataGridRow row= dep as DataGridRow; 
       //untill here we find the selected row and here we check if it 
       //the last row our focus go to next control after datagrid 
       if (row.GetIndex() == dataGrid1.Items.Count - 1) 
      { 
       dataGrid1.MoveFocus(new TraversalRequest(FocusNavigationDirection.Down)); 
       dataGrid1.UnselectAll(); 
      } 
      } 
     } 

セットを使用しています。 System.Windows.Controls.Primitivesを使用してこのrefrenceも使用してください。あなたのウィンドウにDataGridと他のコントロールを置いてください。 最後の行に移動すると、次のコントロールにフォーカスが移ります。私がいつ発生するため、こののお金持ち最後の行であれば(row.GetIndex()== dataGrid1.Items.Count - 1)

あなたがデータグリッドを使用します.IF私は選択モードとしてfullrowselectでデータグリッドを使いますセル選択モードでコメントを残してください。

+0

最初の行に到達すると次のコントロールに移動します。しかし、ここで私が望むのは、最後の行と2番目の列がnullに達したときに次のコントロールに移動したいときです。 –

+0

私はCodeBehindファイルを持っていません..私はDataGridから派生したCustomDataGridを作成しています。 –

関連する問題