2013-01-08 15 views
6

Lớp này cho phép truyền các ngữ cảnh dữ liệu từ bộ sưu tập đến các thành viên của nó. Nhưng nó chỉ dành cho Silverlight.Có tương đương với DependencyObjectCollection <T> cho WPF .NET4.0 không?

Thông tin thêm về DepedencyObjectCollection có thể được tìm thấy từ số post này.

Nếu tương đương không tồn tại, các bước cần thiết cần thiết để tạo một tài khoản là gì?

Tôi quan sát hành vi mong muốn từ lớp RowDefinitionCollection. Nhưng tôi không thể hình dung được việc thực hiện nó.

cảm ơn

+4

Man, tôi không thể đợi .Net 40! – RichardTowers

+0

Có phải bạn đang tìm kiếm 'System.Collections.ObjectModel.ObservableCollection '? – newb

+1

No. ObservableCollection không chuyển ngữ cảnh dữ liệu đến các phần tử của nó. Để dữ liệu ràng buộc hoạt động, T phải kế thừa từ DependencyObject. Không có sự ràng buộc trên T cho ObservableCollection, vì vậy nó sẽ không làm việc ra khỏi hộp. –

Trả lời

2

Câu trả lời ngắn gọn là KHÔNG.

Nhưng tôi không còn nghĩ đó là cách triển khai chính xác. Tôi kết thúc bằng cách sử dụng một bộ sưu tập của FrameworkElement và thêm chúng vào LogicalChildren của điều khiển tùy chỉnh. Bằng cách đó, DataContext được truyền cho FrameworkElement một cách tự nhiên và mọi thứ hoạt động như mong đợi.

Dường như đó là cách lớp RowDefinition được triển khai trong .NET 4.0. Tuy nhiên, phiên bản Silverlight của RowDefinition được lấy trực tiếp từ DependencyObject. Các tài liệu MSDN cho thấy tài liệu Silverlight theo mặc định và misdirected tôi đến cách tiếp cận cũ và không chính xác.

Các vấn đề liên quan