Attualmente sto lavorando all'interno di un controllo utente WPF (l'elemento radice del mio file XAML è "UserControl"), che so essere ospitato all'interno di una finestra. Come posso accedere a una proprietà della finestra utilizzando l'associazione dati?Che cosa fa esattamente "RelativeSource FindAncestor" di WPF Data Binding?
Qualcuno sa perché semplicemente
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" Path="..." />
non funziona? Viene visualizzato il messaggio di errore:
System.Windows.Data Avviso: 4: Impossibile trovare l'origine per il collegamento con riferimento 'RelativeSource FindAncestor, AncestorType =' System.Windows.Window ', AncestorLevel =' 1 ''.
Modifica: Ho finito per utilizzare una variazione sull'approccio di ArsenMkrt, quindi ho accettato la sua risposta. Tuttavia, sono ancora interessato a scoprire perché FindAncestor non "funziona".
hai detto che hai variato la sua risposta, puoi pubblicare quello che hai effettivamente fatto? – Miles
Nota che stavo cercando una soluzione a questo problema nel contesto del pattern MVVM. La proprietà della finestra che volevo associare era in realtà una proprietà di ViewModel di Windows. – user200783
ArsenMkrt ha suggerito la creazione di una proprietà in UserControl e l'associazione a tale, quindi a sua volta (in XAML) l'associazione di questa proprietà alla proprietà desiderata della finestra. Con il pattern MVVM, tuttavia, UserControl non appariva mai in XAML, quindi la seconda parte non era possibile. – user200783