Đối với một sự hiểu biết tốt hơn về các ràng buộc WPF:Styles và Bindings trong WPF
<Style x:Key="myButton" TargetType="Button">
<Setter
Property="Content"
Value="{Binding
RelativeSource={RelativeSource FindAncestor,AncestorType=My:Control},
Path=Text}">
</Setter>
</Style>
<Button Name="button1" Style="{StaticResource myButton}"></Button>
<Button Name="button2" Style="{StaticResource myButton}"></Button>
Khi tôi sử dụng phong cách này trên nhiều nút, tôi giả sử Style chỉ là những người khởi tạo. Nó có ý nghĩa gì đối với sự ràng buộc? Tôi chỉ có một Ràng buộc (tức là một đối tượng ràng buộc) và nút1 và button2 đang tham chiếu đến đối tượng ràng buộc này? Nếu vậy, khi nào và như thế nào là Nguồn của Ràng buộc được xác định khi button1 và button2 được sử dụng như một phần của các điều khiển My: Control khác nhau? Bởi vì tôi có nghĩa là tham chiếu đến các đối tượng nguồn không phải là giá trị của nguồn? Ai đó có thể chỉ cho tôi một số đặc điểm kỹ thuật mà điều này được nêu?
tôi hỏi những qestion cùng cho bạn bè. Ông giải thích rằng có một sự khác biệt giữa BindingExpression và một đối tượng Binding. Những gì tôi đã chỉ định trong Style là BindingExpression. Và kể từ khi Style chỉ được khởi tạo một lần, BindingExpression có lẽ là tốt. Vì vậy, cả hai nút tham chiếu cùng BindingExpression. Tại một số thời điểm trong khi thực thi BindingExpression được đánh giá và một đối tượng Binding được tạo ra. Trong quá trình tạo này, FindAncestor được đánh giá dựa trên vị trí hiện tại của nút trong cây.Ở cuối mỗi nút có đối tượng ràng buộc riêng và khác nhau của nó. – user1182735
Nói chung lời giải thích này phù hợp với lời giải thích của bạn, nhưng với một chi tiết nhỏ. Sự khác biệt giữa đối tượng Binding và đối tượng BindingExpression. – user1182735
Cả hai nút đều tham chiếu cùng một ràng buộc, nhưng cả hai nút sẽ không có cùng 'BindingExpression' vì' BindingExpression' chứa thông tin về 'Mục tiêu'. – Shoe