Tôi hiện đang làm việc trong một điều khiển người dùng WPF (phần tử gốc của tệp XAML của tôi là "UserControl"), mà tôi biết đang được lưu trữ bên trong một Cửa sổ. Làm cách nào để truy cập thuộc tính của Cửa sổ bằng cách sử dụng ràng buộc dữ liệu?"RelativeSource FindAncestor" của WPF Data Binding chính xác là gì?
Có ai biết tại sao chỉ đơn giản
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" Path="..." />
không hoạt động? Thông báo lỗi tôi nhận được là:
System.Windows.Data Cảnh báo: 4: Không tìm thấy nguồn để liên kết với tham chiếu 'RelativeSource FindAncestor, AncestorType =' System.Windows.Window ', AncestorLevel =' 1 ''.
Chỉnh sửa: Tôi đã kết thúc bằng cách sử dụng một biến thể về cách tiếp cận của ArsenMkrt, vì vậy đã chấp nhận câu trả lời của mình. Tuy nhiên, tôi vẫn quan tâm đến việc tìm ra lý do tại sao FindAncestor không "chỉ làm việc".
bạn nói bạn đã thay đổi câu trả lời của mình, bạn có thể đăng những gì bạn thực sự đã làm không? – Miles
Lưu ý rằng tôi đang tìm kiếm giải pháp cho vấn đề này trong ngữ cảnh của mẫu MVVM. Thuộc tính của Cửa sổ mà tôi muốn liên kết với thực sự là một thuộc tính của ViewModel của Window. – user200783
ArsenMkrt đã đề xuất tạo thuộc tính trong UserControl và liên kết với điều đó, sau đó đến lượt (trong XAML) ràng buộc thuộc tính này với thuộc tính mong muốn của Cửa sổ. Tuy nhiên, với mẫu MVVM, UserControl không bao giờ xuất hiện trong XAML, do đó phần thứ hai là không thể. – user200783