2013-07-12 5 views
15

मेरे पास उपयोगकर्ता नियंत्रण ए तक पहुंच है। मैं उपयोगकर्ता नियंत्रण सी पर जानकारी प्राप्त करना चाहता हूं। क्या WPF में ऐसा करने का कोई तरीका है? संरचना मूल रूप से आप जो देखते हैं। उपयोगकर्ता नियंत्रण डी एक रिबन है, सी रिबन पर एक टैब है और बी और ए सी की सामग्री हैं। मुझे सी तक पहुंच नहीं लग रही है। मैंने ए की मूल संपत्ति का उपयोग करने की कोशिश की लेकिन ऐसा लगता है कि ऐसा नहीं लगता है मुझे सी पर जानकारीअभिभावक उपयोगकर्ता नियंत्रण का नाम प्राप्त करें WPF C#

enter image description here

+0

'माता-पिता' संपत्ति आपको इसके बजाय क्या देती है? –

+0

मुझे लगता है कि यह खिड़की या कुछ अन्य अस्पष्ट तत्व देता है। कार्यक्रम हास्यास्पद रूप से जटिल है। –

+0

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

उत्तर

13

VisualTreeHelper.GetParent उपयोग करने का प्रयास या पुनरावर्ती क्रिया here

+0

बहुत बढ़िया मैं सोमवार को कोशिश करूंगा। धन्यवाद –

+0

यह काम करता है हालांकि यह पता चला है कि यह प्रश्न मेरी समस्या का समाधान नहीं करता है। यद्यपि सही उत्तर के लिए चेकमार्क और +1! धन्यवाद –

1

शायद का उपयोग आप UserControl सी के रूप में माता पिता कास्ट करने के लिए, इस तरह की कोशिश कर सकते हैं:

(this.Parent as UserControlC).YourProperty 
-1

विंडो का उपयोग करें। गेटविंडो (यह) विधि लोडेड इवेंट हैंडलर के भीतर।

public MainView() 
{ 
    InitializeComponent(); 

    this.Loaded += new RoutedEventHandler(MainView_Loaded); 
} 

void MainView_Loaded(object sender, RoutedEventArgs e) 
{ 
    Window parentWindow = Window.GetWindow(this); 

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