2013-07-12 17 views
15

Ho accesso al controllo utente A. Voglio ottenere informazioni sul controllo utente C. C'è un modo per farlo in WPF? La struttura è fondamentalmente ciò che vedi. User Control D è un ribbon, C è una tab sul ribbon e B e A sono contenuti di C. Non riesco a ottenere l'accesso a C. Ho provato ad usare la proprietà Parent di A ma non sembra dare me l'informazioni su C.Ottieni il nome del controllo utente genitore WPF C#

enter image description here

+0

Cosa invece offre la proprietà 'Parent'? –

+0

Penso che dia alla finestra o qualche altro elemento oscuro. Il programma è ridicolmente complicato. –

+0

Stai usando MVVM? In caso contrario, consiglierei di utilizzare questo approccio. In questo modo è possibile accedere alla logica di base (Visualizza modelli) sotto la parte inferiore senza cercare di passare direttamente ai controlli. – tsells

risposta

13

provare a utilizzare VisualTreeHelper.GetParent o utilizzare la funzione ricorsiva here

+0

Fantastico, ci proverò lunedì. Grazie –

+0

Questo funziona, tuttavia risulta che questa domanda non risolve il mio problema. Segno di spunta e +1 per la risposta giusta però! Grazie –

1

Forse si può provare a lanciare il genitore come UserControl C, in questo modo:

(this.Parent as UserControlC).YourProperty 
-1

usa il metodo Window.GetWindow (this) all'interno del gestore di eventi Loaded.

public MainView() 
{ 
    InitializeComponent(); 

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

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

    ... 
} 
Problemi correlati