2009-04-20 15 views
5

मुझे एक सूची बॉक्स मिला है जो डाटाबेसिंग के माध्यम से इसमें नए आइटम जोड़े जा रहा है (यानी कुछ सूची में जोड़ा जा रहा है और बॉक्स नई वस्तु को शामिल करने के लिए अपडेट हो रहा है)।आइटम नियंत्रण में नए आइटम पर फ़ोकस सेट करना

सूची बॉक्स में आइटम संपादन योग्य डेटा टेम्पलेट्स हैं, इसलिए सवाल यह है: जब कोई नया आइटम जोड़ा जाता है तो मैं टेम्पलेट में पहले फ़ील्ड पर फ़ोकस कैसे सेट करूं?

मैंने this question पर देखा है और यह देखने जा रहा है कि यह मुझे कहीं भी ले जाता है, लेकिन यह वास्तव में मेरे प्रश्न का सीधा जवाब नहीं है।

उत्तर

7

आपके द्वारा लिंक किए गए प्रश्न को आपकी विशेष स्थिति के लिए काम करना चाहिए। जब तक आप अपने स्रोत के लिए एक ObservableCollection उपयोग कर रहे हैं, तो आप सेट कर सकते हैं:

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

यह सुनिश्चित करें कि के रूप में आइटम जोड़ रहे हैं, ध्यान नया आइटम तो फ़ोकस प्रबंधक (पर एक नज़र लेने के लिए दिया जाता है कर देगा उस धागे में पहली प्रतिक्रिया) टेक्स्टबॉक्स पर ध्यान देना चाहिए। MSDN लेख एक उपयोगी उदाहरण के लिए, एक टेम्पलेट यहाँ में डाल की आपूर्ति:

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

मेरे मुद्दा वास्तव में उस फोकस घटना से निपटने और वास्तविक पाठ करने के लिए इसे पारित की आवश्यकता है डेटा टेम्पलेट में एक UserControl की उपस्थिति के कारण और अधिक जटिल हो जाता है बॉक्स जो मैं चाहता हूं, लेकिन यहां सेटिंग्स ने मुझे इसे समझने के लिए काफी दूर किया है, धन्यवाद। –

+4

यदि कोई और कुछ इसी तरह की तलाश में आता है तो आप अपना कोड पोस्ट कर सकते हैं। –

संबंधित मुद्दे