2009-04-20 4 views
5

DataBoxを介して新しい項目が追加されたListBoxがあります(つまり、何かがリストに追加され、新しい項目を含むように更新されています)。Itemsコントロールの新しい項目に重点を置く

リストボックス内の項目は編集可能なデータテンプレートですので、問題は次のとおりです。新しい項目が追加されたときに、テンプレートの最初のフィールドにフォーカスを設定するにはどうすればよいですか?

私はthis questionを見て、それがどこにでも入るのかどうかを見ていますが、それは本当に私の質問に対する直接的な反応ではありません。

答えて

7

リンク先の質問は、あなたの特定の状況に適しているはずです。限り、あなたはあなたのソース用のObservableCollectionを使用しているとして、あなたが設定することができます。

<ListBox IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding MyCollection}" ItemTemplate="{StaticResource MyTemplate}/> 

これは、アイテムが追加されると、フォーカスが、新しいアイテムフォーカスマネージャ(を見てみましょうに与えられていることを確認しますそのスレッドの最初の応答)は、TextBoxにフォーカスを当てるべきです。

<DataTemplate x:Key="MyTemplate" DataType="{x:Type Classes:MyClass}">  
    <StackPanel FocusManager.FocusedElement="{Binding ElementName=firstButton}"> 
    <Button Name="firstButton" /> 
    </StackPanel> 
</DataTemplate> 
+0

フォーカスイベントを処理して実際のテキストに渡す必要があるデータテンプレートにUserControlが存在するため、実際には私の問題がより複雑になりました。私が欲しいと思っているボックスがありますが、ここでの設定は私には分かります。 –

+4

他の誰かが似たようなものを探す場合に備えて、コードを投稿するかもしれません。 –

関連する問題