2012-05-21 15 views
5

का उपयोग करके UI तत्व पर ध्यान केंद्रित करें, मैं टेक्स्ट बॉक्स में तीर कुंजी दबाते समय ui तत्व (ui तत्व पॉपअप जिसमें devexpress ग्रिड होता है) पर फ़ोकस सेट करना चाहता हूं। मैं इसे एक्सएएमएल पक्ष पर या एमवीवीएम का उपयोग करके पूरी तरह से काम करना चाहता हूं। यह काम करेगा। कृपया मुझे बताएं कि मैं इसे कैसे पूरा कर सकता हूं।XAML या MVVM

<KeyBinding Key="Down" FocusManager.FocusedElement="{Binding ElementName=PART_GridControl}"/> 

मैं पीछे इस तरह कोड का उपयोग कर रहा था, लेकिन मैं लागू करने के लिए mvvm.i, ग्रिड नियंत्रण करने के लिए पाठ बॉक्स से फोकस बदलना चाहते हैं जब मैं पाठ बॉक्स में डाउन ऐरो कुंजी दबाएँ चाहते हैं -

private void text_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Down || e.Key == Key.Up || e.Key == Key.Left || e.Key == Key.Right) 
    { 
     PART_GridControl.Focus(); 
    }  
} 
+0

<की बाइंडिंग कुंजी = "डाउन" FocusManager.FocusedElement = "{बाइंडिंग ElementName = PART_GridControl}" /> काम नहीं कर रहा – user1379584

+0

शायद मैं उलझन में हूँ, लेकिन होगा में एक keydown घटना होने का तथ्य नहीं टेक्स्टबॉक्स का मतलब है कि इसका ध्यान केंद्रित है? –

+0

मैं टेक्स्ट बॉक्स से फोकस को ग्रिड कंट्रोल में बदलना चाहता हूं, जब मैं टेक्स्ट बॉक्स – user1379584

उत्तर

1

आप WPF में संलग्न व्यवहार उपयोग कर सकते हैं,

चेक नीचे दिए गए लिंक

Managing focus while playing nice with MVVM

Set focus

+0

इसके अलावा कोई आसान तरीका है, जैसे फोकसमेनगर – user1379584

+0

का उपयोग करके http://stackoverflow.com/questions/1356045/set-focus-on-textbox-in-wpf-from-view-model-c-wpf/1356781#1356781 बस chec के इस लिंक – user1379584