Mam siatkę elementów, która jest wypełniona przy użyciu wiązania danych. W siatce mam DataTemplate
dla niektórych komórek. Muszę uzyskać dostęp do DataContext
elementu głównego (tego, który hostuje siatkę), aby uzyskać dostęp do dodatkowych powiązań w celu obsługi mojego datatemplate.Jak uzyskać dostęp do głównego DataContext w DataTemplate w WPF?
Więc trzeba:
Window
Window.DataContext = TheDataSourceWithItemsAndSupports
DataGrid.ItemsSource = {Binding Items}
DataTemplate
ListBox.ItemsSource = {Binding Supports}
chcę {Binding Supports}
na TheDataSourceWithItemsAndSupports
, ale nie widzę w jaki sposób to zrobić. Próbowałem określając {Binding}
, ale zawsze zwraca null
. Próbowałem również używać RelativeSource FindAncestor
, ale to również daje null
.
Jakieś wskazówki?
Myślę, że ścieżka wiążąca byłaby DataContext.Supports, ale był to również mój pomysł. –
Masz rację, poprawiono. – user76035
To zadziałało, ale musiałem zrobić więcej kodu (scenariusz podany powyżej nie był dokładną reprezentacją sytuacji). – Inferis