2009-08-06 10 views

Trả lời

65

Thuộc tính được đính kèm là loại thuộc tính phụ thuộc. Sự khác biệt là cách chúng được sử dụng.

Với thuộc tính đính kèm, thuộc tính được xác định trên lớp không phải là cùng một lớp mà nó đang được sử dụng. Điều này thường được sử dụng để bố trí. Ví dụ tốt là Panel.ZIndex hoặc Grid.Row - bạn áp dụng điều này cho một điều khiển (tức là: Button), nhưng nó thực sự được định nghĩa trong Panel hoặc Grid. Thuộc tính được "đính kèm" vào thể hiện của nút.

Điều này cho phép vùng chứa, ví dụ: để tạo thuộc tính có thể được sử dụng trên bất kỳ Giao diện người dùng nào.

Đối với các khác biệt về triển khai - về cơ bản chỉ là vấn đề khi sử dụng Đăng ký so với Đăng ký được đính kèm khi bạn xác định thuộc tính.

+7

Nhưng sự khác biệt chính xác là gì ?! Từ những gì tôi đã nhìn thấy bạn có thể đính kèm một thuộc tính không gắn vào một mã thông qua mã (tôi nghĩ rằng điều này bị chặn trong XAML mặc dù.) Có lẽ đó là sự khác biệt? – MarqueIV

5

Thuộc tính được đính kèm về cơ bản có nghĩa là cho các phần tử vùng chứa.như nếu bạn có lưới và bạn có lưới. Bây giờ, đây được coi là thuộc tính đính kèm của phần tử lưới. Ngoài ra, bạn có thể sử dụng thuộc tính này trong nút texbox vv để đặt vị trí của nó trong lưới.

Thuộc tính phụ thuộc giống như thuộc tính cơ bản thuộc về một số lớp khác và được sử dụng trong lớp khác. ví dụ: giống như bạn có hình chữ nhật chiều cao và chiều rộng ở đây là các thuộc tính thông thường của hình chữ nhật, nhưng bên trái và trên cùng là thuộc tính phụ thuộc vì nó thuộc về lớp Canvass.

-2

Thuộc tính được đính kèm là một loại DependencyProperties đặc biệt. Chúng cho phép bạn gắn một giá trị vào một đối tượng không biết gì về giá trị này. Một ví dụ điển hình cho khái niệm này là các bảng bố cục. Mỗi bảng điều khiển bố cục cần dữ liệu khác nhau để căn chỉnh các phần tử con của nó. Canvas cần Top và Left, DockPanel cần Dock, vv Vì bạn có thể viết bảng bố trí của riêng bạn, danh sách là vô hạn. Vì vậy, bạn thấy, nó không thể có tất cả những thuộc tính trên tất cả các điều khiển WPF. Giải pháp là thuộc tính đính kèm. Chúng được xác định bởi điều khiển cần dữ liệu từ một điều khiển khác trong một ngữ cảnh cụ thể. Ví dụ: phần tử được căn chỉnh bởi bảng điều khiển bố cục chính.

0

Tôi nghĩ bạn có thể xác định thuộc tính đính kèm trong chính lớp hoặc bạn có thể xác định nó trong lớp khác. Chúng tôi luôn có thể sử dụng thuộc tính đính kèm để mở rộng các điều khiển microsoft tiêu chuẩn. Nhưng thuộc tính phụ thuộc, bạn xác định nó trong điều khiển tùy chỉnh của riêng bạn. ví dụ. Bạn có thể kế thừa điều khiển của mình từ một điều khiển tiêu chuẩn và xác định thuộc tính phụ thuộc trong điều khiển của chính bạn và sử dụng nó. Điều này tương đương với việc xác định thuộc tính đính kèm và sử dụng thuộc tính đính kèm này trong điều khiển tiêu chuẩn.