2011-08-25 58 views
20

Tôi đang ràng buộc ViewModels vào ContentControls và cho phép Caliburn đảm nhiệm việc tạo và ràng buộc chế độ xem. Tuy nhiên, tôi muốn tùy chỉnh Caliburns ViewModel-> Xem quy ước dựa trên ContentControl mà tôi đang ràng buộc.Chế độ xem khác nhau tùy thuộc vào ContentControl (Caliburn.Micro)

Ví dụ: một ContentControl thông thường, tôi muốn Chế độ xem thường xuyên ràng buộc (SomethingViewModel -> SomethingView). Nhưng đối với một ContentControl nhất định, tôi muốn Caliburn lấy một View có tên là SomethingViewSpecial. Điều đó có thể không?

Trả lời

32

Có, điều đó là có thể.

Sử dụng thuộc tính đính kèm cal:View.Context và sau đó đặt tên chế độ xem của bạn cho ngữ cảnh được chỉ định như YourNamespace.Something.ContextView (xóa "ViewModel" khỏi tên kiểu xem của bạn, thêm dấu chấm và giá trị của thuộc tính Ngữ cảnh).

Bằng cách đó, bạn thậm chí có thể liên kết nhiều chế độ xem với một mô hình chế độ xem.

Ví dụ:

<ContentControl x:Name="Toolbar" cal:View.Model="{Binding ActiveItem}" cal:View.Context="Toolbar" /> 

Bạn có thể xem ví dụ here làm việc (từ CoProject ứng dụng mẫu, part 9).

+0

Cảm ơn câu trả lời, rất hữu ích trong dự án của tôi. –

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