0

私は WPF に UserControl を持っており、そこにはさまざまなコントロールが含まれています...最も重要なのは DataGrid コントロールです。DataGrid コントロールは、Observable Collection リストにバインドされています。このリストには、ユーザーが選択したいくつかのフィルターに基づいたさまざまなアイテムが含まれています。ここで、DataGrid にすべてのデータが表示されます。ユーザーコントロールの最初の (フィルター) コンボボックスにフォーカスを設定したいと思います。DataGrid が完全にロードされたことを知る方法はありますか? Grid が新しいリストで更新され、ComboBox をフォーカスに設定できることを通知するためにトリガーできる設定可能な DataTrigger はありますか。基本的に、DataGrid のデータが再作成されたときに、UserControl の最初のコントロールにフォーカスを設定することができません...この問題を解決する方法を知っている人がいたら教えてください!! 前もって感謝します。

4

1 に答える 1

0

コード ビハインドで作業するのは嫌いですが、それが唯一の方法である場合もあります。私によれば、これは2つの方法で行うことができます:

  1. フィルタリング ロジックが完了したら、EventAggregator を使用して ViewModel からイベントを発生させます。ビュー コード ビハインドおよびハンドラー do でこのイベントをリッスンします。firstCombo.Focus()

  2. 2番目は少し汚いので、リストビューにフィルターを適用した後にボタンまたは最後のコントロールが必要です。buttonClickHandler/または最後のコントロールの任意のイベント (selectionchange など) で直接実行しますfirstCombo.Focus()。この場合、ボタンを押した瞬間にフォーカスがコンボに移動します。

ありがとう

于 2013-08-29T09:52:42.060 に答える