Silverlight 4 đã hết và có vẻ như chúng tôi đã bỏ lỡ chức năng DataType DataType trong bản phát hành này một lần nữa, điều này khá quan trọng đối với hỗ trợ MVVM IMHO. Đối với các ứng dụng WPF của tôi, tại thời điểm này, tôi khá quen với việc thêm DataTemplates trên toàn cầu cho Chế độ xem vào Ứng dụng của tôi. Tài nguyên với DataTypes cho ViewModels tương ứng của tôi:Silverlight 4 DataTemplate DataType
tức là.
<DataTemplate DataType="{x:Type viewModels:myViewModel}">
<views:myView/>
</DataTemplate>
Tôi thích cách tiếp cận này, vì tất cả ViewModels ràng buộc của tôi tự động hiển thị các nội dung chính xác ... đặc biệt hữu ích khi tôi có một số ItemSource trong quan điểm của tôi bị ràng buộc vào một tập hợp các ViewModels ... Đây, ví dụ, sẽ tự động đảm bảo mỗi tab trong TabControl được liên kết với một số Collection<SomeViewModel>
hiển thị chế độ xem được liên kết với SomeViewModel
.
Một số điều tôi đã cố gắng cho SL 3 bao gồm:
Tạo một "DataTemplatePresenterContentControl" mà tự động áp dụng một DataTemplate cho nội dung khi kiểm soát đã nạp
Sử dụng một TypeConverter, áp dụng tự động trên kiểm soát tải, đi bộ xuống cây thị giác tìm kiếm các đối tượng dữ liệu bị ràng buộc
Sử dụng kiểu, được áp dụng động trên tải kiểm soát, đi xuống dưới chế độ xem hình ảnh của cây g đối với các đối tượng dữ liệu bị ràng buộc
Tuy nhiên, không cách nào trong số này thực sự giải quyết tình huống tôi đã đề cập ở trên, điều này thực sự quan trọng.
Vì vậy, vì điều này vẫn không thể thoát khỏi hộp trong Silverlight 4, tôi rất muốn biết liệu có ai chưa đưa ra một số giải pháp thay thế hợp lý hay không.
Cảm ơn.
Tôi cũng đang sử dụng RegionManager của Prism, nhưng bạn có thể giải thích thêm một chút về chi tiết cụ thể về cách bạn đang thực hiện việc này không? – Jeff
Sự tham gia trong bản chỉnh sửa của tôi ở trên. –
Vâng, cảm ơn. Tôi thích cách tiếp cận này. Nhưng nó vẫn không giải quyết được một vấn đề tôi đã đề cập ở trên; ràng buộc với một IEnumerable - ví dụ ràng buộc một TabControl đến một Bộ sưu tập và mong đợi mỗi tab để hiển thị MyViewForMyViewModelClass UserControl. Hoặc có cách nào để thích ứng với cách tiếp cận của bạn để hỗ trợ điều đó không? Cảm ơn. –
Jeff