2011-09-15 9 views
4

Silverlightアプリケーションにデータグリッドがあります。最初の行をクリックし、Enterキーを押すと、選択が次の行に移動します。私はこの動作を望んでいない - Enterキーは、この画面上で全く異なる目的のために使用されています。Silverlight DataGridがEnterキーを処理しないようにする

私はこれが編集フレームワークの一部であることを認識していますが、私はそれをオフにする方法が必要です。私はIsReadOnlyをTrueに設定しようとしましたが(コントロールは技術的には読み取り専用ではありませんが)、何の効果もありませんでした。

DataGrid KeyDownイベントに添付されましたが、Enterキーが押されたときに呼び出されません。他のキーでも正常に動作します。

私は困惑しています。ご協力いただきありがとうございます。

答えて

4

ええ、それは迷惑です。

私が知る限り、唯一のオプションは、DataGridを継承する独自のコントロールを作成し、イベントをベースに渡す前に必要な操作を行うことです。

public class NewDataGrid : DataGrid 
{  
    protected override void OnKeyDown(KeyEventArgs e)  
    {   
     if (e.Key == Key.Enter)   
     { 
      //do what is needed here    
      e.Handled = true;   
     }   
     base.OnKeyDown(e);  
    } 
} 
関連する問題