2011-02-08 8 views
1

表形式のデータが表示される読み取り専用のデータグリッドでは、ユーザーがいくつかの文字を入力すると行にジャンプする機能が必要になります。 Officeが wpf datagridは入力中に行にジャンプする

  • 受注
  • ...もっとデータ...
  • を供給
  • ...いくつかのデータ...

    • は以下のレコードが利用可能であると言います

      ユーザーが "O"を入力すると、ID "Office supplies"の行が選択されます。それ以降にユーザーが "r"を入力すると、 "注文"行を選択する必要があります。

      私の質問は実際には:このためのボックスソリューションはありますか、カスタムを作成する必要がありますか?

  • 答えて

    1

    これを行うには、「箱の外」機能はありませんが、あなた自身を作成する必要があります。

    私はお勧め:(フォーカスが例えばDGにある場合)

    • はあなたにすべてのセルをループし、各キーストロークの後にバッファ
    • 内部被災鍵を格納
    • キーボードを聴い最初の一致を調べるdataSource(データサイズに応じて、各セルの文字列を最悪の場合のdataSourceの各セルに対して比較する必要があるため、非常にコストがかかるかもしれません...)
    • セット指定された行/列に対するdataGridのcurrentCell (これを行うにはいくつかの方法があります)

    これは複雑ではありませんが、何らかのコーディングが必要です。大部分の場合、巨大なdataSetがあるとパフォーマンスが悪化する可能性があります。

    +0

    ありがとうございました。これがうまくいくかどうかを調べるプロトタイプを作成して実行します。 –

    1

    検索入力用のテキストボックスを作成し、DataGridがLINQ(または好きな方法で)にバインドされているコレクションをフィルタリングし、をクローンを別のコレクションに複製する必要があります。最後に、DataGridをクローンオブジェクトに再バインドし、ウィンドウのDataContextを再設定して、DataGridがバインディングの変更を認識できるようにします。最後に、チェックを実装して、ユーザーがテキストボックスを空にして空の場合は、元のコレクションに再度バインドして、もう一度DataContextを再設定します。

    この情報がお役に立てば幸いです。)

    +0

    実際、私は現在要素を選択する方法を探していました。しかし、これも要件の一つです:)ありがとう! –

    +0

    あなたはそれが気に入ってうれしいです。私は過去に同様の問題を抱えていましたが、これで解決しました:) – Machinarius

    関連する問題