“{Binding Path =.}” Có nghĩa là gì trong liên kết WPF?


91

Điều gì có {Binding Path=.}nghĩa là trong một liên kết WPF?

Tôi thấy một số người sử dụng nó, nhưng không thể tìm thấy bất kỳ lời giải thích nào.

Có bất kỳ ký hiệu đặc biệt nào khác trong cú pháp ràng buộc (ngoài {Binding /}) không?

Câu trả lời:


59

Đây là cách viết tắt để liên kết với nguồn hiện tại. Để biết thêm thông tin xem tại đây .

Từ tài liệu cụ thể:

Theo tùy chọn, một đường dẫn dấu chấm (.) Có thể được sử dụng để liên kết với nguồn hiện tại. Ví dụ, Text="{Binding}"là tương đương với Text="{Binding Path=.}".


1
@Ray - chính xác là suy nghĩ của tôi. Nếu bạn định viết tốc ký, tại sao lại dừng lại ở đó?
micahtan

5
Tôi không thể tranh luận với MSDN, nhưng vẫn có sự khác biệt. {Binding} không thể được sử dụng trên chính một đối tượng (theo hai cách nó yêu cầu một thuộc tính) trong khi {Binding Path =.} Hoạt động.
Sergey Aldoukhov

@Sergey - Bạn có mẫu mã nào mà {Binding} không hoạt động nhưng {Binding Path =.} Thì có? Nếu vậy, MSDN lẽ cần phải được cập nhật ...
micahtan

Dễ dàng:. Var s = "thử nghiệm; DataContext = s; và trong <TextBox Text = {Binding} /> - không làm việc Nhưng MSDN không phải là wiki ...
Sergey Aldoukhov

8
Một ví dụ khác: <TextBlock Text = "{Binding Converter = ...}" /> không hoạt động vì bạn phải đặt Đường dẫn. Trong trường hợp đó Path =. là hữu ích.
Nicolas

67

Tôi đã tìm thấy WPF Binding CheatSheet này vài tháng trước và thấy nó rất hữu ích, đặc biệt là đối với bất kỳ ai đang học WPF. Có một số lỗi chính tả bên trong nó, nhưng nó vẫn còn khá tốt.

Đây là một đoạn trích nhỏ (được cho là có định dạng bảng):

Basic Binding   
{Binding}  Bind to current DataContext. 
{Binding Name}  Bind to the “Name” proeprty of the current DataContext. 
{Bindind Name.Length}  Bind to the Length property of the object in the Name property of the current DataContext. 
{Binding ElementName=SomeTextBox, Path=Text}  Bind to the “Text” property of the element XAML element with name=”SomeTextBox” or x:Name=”SomeTextBox”. 

Liên kết trực tiếp đến CheatSheet


2
hay nhưng {Ràng buộc.} là gì. Tôi đang tìm kiếm lời giải thích cho điều này nhưng tôi không thể tìm thấy nó?
batmaci

@batmaci Tôi muốn nói rằng nó tương đương với {Binding }, nhưng đã khá nhiều năm kể từ khi tôi làm việc nhiều với Xaml, vì vậy tôi không chắc.
Ryan Versaw

@batmaci, nhiều năm sau ... {Binding string}tương tự như {Binding Path=string}. stringkhông được sử dụng để khởi tạo thuộc tính Pathtrực tiếp, mà là một tham số cho phương thức Binding (string path)khởi tạo sau đó khởi tạo thuộc Pathtính. Điều này chỉ hoạt động khi chuỗi là mã thông báo đầu tiên sau đó Binding, phần còn lại là bộ khởi tạo thông thường (cặp thuộc tính = giá trị). Biết rằng, Binding .có hiệu lực bằng Binding Path=.và cú pháp Đường dẫn thuộc tính có sẵn ở đây .
phút
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.