2013-07-12 25 views
15

Kullanıcı Kontrolü A'ya erişimim var. Kullanıcı Kontrol C hakkında bilgi almak istiyorum. Bunu WPF'de yapmanın bir yolu var mı? Yapı aslında gördüğünüz şeydir. Kullanıcı Denetimi D bir şerittir, C şeridindeki bir sekme ve B ve A'nın içeriği C'dir. C'ye erişemiyor gibi görünüyorum. A'nın Ebeveyn özelliğini kullanmayı denedim, ancak bana da C'den bilgiAna kullanıcı denetiminin adını öğrenin WPF C#

enter image description here

+0

'Parent' özelliği size ne veriyor? –

+0

Sanırım pencereyi veya başka bir belirsiz unsuru veriyor. Program gülünç bir şekilde karmaşıktır. –

+0

MVVM kullanıyor musunuz? Eğer değilse bu yaklaşımı kullanmanızı tavsiye ederim. Bu sayede doğrudan kontroller arasında zıplamaya çalışmadan nod altındaki temel mantığa (Görünüm Modelleri) erişebilirsiniz. – tsells

cevap

13

böyle UserControl C ebeveyn döküm deneyebilirsiniz VisualTreeHelper.GetParent kullanmayı deneyin veya özyinelemeli fonksiyon Belki here

+0

Awesome Bunu pazartesi günü deneyeceğim. Teşekkürler –

+0

Bu işe yarıyor, ancak bu sorunun benim problemimi çözmediği ortaya çıkıyor. Yine de doğru cevap için onay işareti ve +1! Teşekkürler –

1

kullanın:

(this.Parent as UserControlC).YourProperty 
-1

Window.GetWindow (this) yöntemini kullanın Loaded olay işleyicisi içinde.

public MainView() 
{ 
    InitializeComponent(); 

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

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

    ... 
}