Tôi có một mạng lưới các mục được điền bằng cách sử dụng databinding. Trong lưới, tôi có một số DataTemplate
cho một số ô nhất định. Tôi cần truy cập vào DataContext
của phần tử gốc (phần tử đang lưu trữ lưới) để tôi có thể truy cập các ràng buộc bổ sung để hỗ trợ bảng dữ liệu của tôi.Làm cách nào để truy cập vào DataContext gốc trong DataTemplate trong WPF?
Vì vậy, bạn có:
Window
Window.DataContext = TheDataSourceWithItemsAndSupports
DataGrid.ItemsSource = {Binding Items}
DataTemplate
ListBox.ItemsSource = {Binding Supports}
Tôi muốn {Binding Supports}
trên TheDataSourceWithItemsAndSupports
, nhưng tôi không thấy làm thế nào để làm điều đó. Tôi đã thử chỉ định {Binding}
nhưng luôn trả về null
. Tôi cũng đã thử sử dụng RelativeSource FindAncestor
, nhưng điều đó mang lại null
quá.
Bất kỳ manh mối nào?
Tôi nghĩ đường dẫn liên kết sẽ là DataContext.Supports, nhưng đây cũng là ý tưởng của tôi. –
Bạn đã đúng, đã sửa đổi. – user76035
Điều này làm việc, nhưng tôi đã phải làm một số mã hóa nhiều hơn (kịch bản được đưa ra ở trên không phải là một đại diện chính xác của tình hình ở bàn tay). – Inferis