2013-07-12 18 views
15

Mam dostęp do kontroli użytkownika A. Chcę uzyskać informacje na temat kontroli użytkownika C. Czy jest jakiś sposób, aby to zrobić w WPF? Struktura jest w zasadzie tym, co widzisz. Kontrola użytkownika D to wstążka, C to zakładka na wstążce, a B i A to zawartość C. Nie mogę uzyskać dostępu do C. Próbowałem użyć właściwości nadrzędnej A, ale wydaje się, że nie daje ona mi info o CUzyskaj nazwę kontrolki użytkownika nadrzędnego WPF C#

enter image description here

+0

Co daje własność 'Parent'? –

+0

Myślę, że daje to okno lub jakiś inny niejasny element. Program jest absurdalnie skomplikowany. –

+0

Czy używasz MVVM? Jeśli nie, zaleciłbym stosowanie tego podejścia. W ten sposób możesz uzyskać dostęp do logiki podstawowej (zobacz modele) pod nową wersją bez prób bezpośredniego przeskakiwania elementów sterujących. – tsells

Odpowiedz

13

Spróbuj użyć VisualTreeHelper.GetParent lub skorzystać z funkcji rekurencyjnej here

+0

Awesome Spróbuję tego w poniedziałek. Dzięki –

+0

To działa, ale okazuje się, że to pytanie nie rozwiązuje mojego problemu. Checkmark i +1 dla poprawnej odpowiedzi! Dzięki –

1

może spróbujesz oddać rodzica jako UserControl C, tak:

(this.Parent as UserControlC).YourProperty 
-1

użyj metody Window.GetWindow (this) w obrębie Załadowanej obsługi zdarzeń.

public MainView() 
{ 
    InitializeComponent(); 

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

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

    ... 
} 
Powiązane problemy