0

1 つのユーザー コントロールは、リスト内の各項目にボタンがあるリスト ボックスです。ボタンをクリックすると、項目に関する編集可能な詳細が別のユーザー コントロールに表示されます。詳細は、ビュー モデルへのデータ バインディングを介して、何を表示し、どのように表示するかを認識しています。両方のユーザー コントロールが同じウィンドウにあります。

ここで難しい問題は、最初の非読み取り専用テキスト ボックスにフォーカスを設定することです。

ここで、マークアップ拡張機能を作成することを含む1 つの解決策を見てきました。今でも少し古いので、これを行う簡単な方法があるかどうか疑問に思っています。

乾杯、
ベリル

テキスト ボックスにフォーカスを移動するためのトリガーである EditCommand は、リスト ユーザー コントロールにバインドされたビュー モデルにあることを指摘しておく必要がありました。ただし、UI の問題のためにコード ビハインドがあってもかまいません。

更新これは、Josh Smith による最近の気の利いた投稿で、ここでの意図の一部に対処しています。ViewModel を介してフォーカスを制御できるようにします。

4

2 に答える 2

1

VisualTreeHelper を使用して特定のテキスト ボックス コントロールを見つけ、 textboxcontrol.Focus() を試すことができます。

于 2010-06-30T05:11:03.293 に答える
0

これを行うには他の方法があるかもしれませんが、質問で言及したJosh Smith ソリューションはデータ バインディング フレームワーク自体を使用しているため、MVVM で使用するのは簡単です。ビジュアル ツリーをいじったり、ネストされたコントロールに頭を悩ませたりする必要はありません。シンプルでエレガント、そして何よりもうまく機能します。

BH

于 2010-07-02T00:15:17.323 に答える