मेरे पास एक दृश्य है जिसमें एक TextBox
और इसके नीचे Button
एस है। जब खिड़की लोड होती है तो मैं ध्यान केंद्रित करने के लिए TextBox
चाहता हूं।लोड पर WPF एमवीवीएम फोकस फ़ील्ड
यदि मैं एमवीवीएम का उपयोग नहीं कर रहा था तो मैं लोड किए गए ईवेंट में TextBox.Focus()
पर कॉल करूंगा। हालांकि मेरे व्यूमोडेल को मेरे विचार के बारे में पता नहीं है, तो मैं अपने विचार के कोडबेंड में कोड डाले बिना इसे कैसे पूरा कर सकता हूं?
संपादित करें: जवाब पढ़ने के बाद मैं इस मैं शायद जॉन गैलोवे के जवाब की सिफारिश करेंगे, क्योंकि यह से नियंत्रित किया जा सकता से प्रारंभिक पृष्ठ फोकस अन्य कुछ भी थे, तो दृश्य XAML
<DockPanel FocusManager.FocusedElement="{Binding ElementName=MessageTextBox}">
<TextBox Name="MessageTextBox" Text="{Binding Message}"/>
</DockPanel>
में इस कोड डाल करने का निर्णय लिया ViewModel।
यही वही है जो मैं ढूंढ रहा था। मुझे लगता है कि यह कोड दृश्य में है और किसी कारण से मुझे कोड के पीछे xaml में बेहतर पसंद है। –
गैलोवे का सुझाव आपको व्यूमोडेल से फ़ोकस को नियंत्रित करने की अनुमति देता है ... आप उस पर भी नज़र डाल सकते हैं। –
कुछ अन्य उत्तरों को पढ़ने के बाद मुझे यकीन नहीं है कि कोड ViewModel में है। ऐसा लगता है कि सीधे देखने के लिए बंधे हैं। अगर मेरे पास एक और जटिल पृष्ठ था जो वास्तव में अन्य घटनाओं के आधार पर ध्यान केंद्रित कर रहा था जो शायद समझ में आएंगे। उस ने कहा कि यह अभी भी एक अच्छी चाल है। –