Nếu bạn đủ dũng cảm để có một sự thay đổi kiến trúc lớn, bạn có thể xem xét CompositeWPF (trước đây được đặt tên là Prism) từ các Mẫu & Thực tiễn của Microsoft.
Quan tâm đến bạn sẽ là khả năng xác định "vùng" trong trình bao (ví dụ: cửa sổ) và sau đó sử dụng chế độ xem để lấp đầy các vùng. Nó sử dụng mô hình Model-View-Presenter để cho phép phát triển độc lập các "khung nhìn" từ mô hình hơn là có thể dễ dàng được di chuyển theo thời gian vì trình bao chỉ xác định các vùng và không được kết hợp trực tiếp với những gì được đặt vào nó. Về cơ bản, điều này giúp tách vỏ khỏi các khung nhìn và các khung nhìn từ nhau và làm cho việc kiểm tra đơn vị trở nên dễ dàng hơn ... blah, blah blah.
Đó là một bước nhảy lớn và điều gì đó sẽ làm chậm bạn xuống để bắt đầu, mặc dù tình huống của bạn là một trong các loại ứng dụng mà CompositeWPF có nghĩa là để giải quyết.
Là một phần của CompositeWPF, bạn sẽ cần phải thực hiện các mẫu khác nhau có thể gây nhầm lẫn cho người mới đến, ví dụ: UnityContainer, đảo ngược kiểm soát, MVP (hoặc Model/view/view-model) và tiêm phụ thuộc.
Tôi có thể nhớ khi lần đầu tiên tôi bắt đầu với các ứng dụng mẫu đang bối rối bởi vì không rõ ràng làm thế nào trên trái đất, một số chế độ xem thậm chí đã được tạo! Container thống nhất sẽ khởi tạo các đối tượng và gọi các hàm tạo tham số được gọi một cách kỳ diệu.
CompositeWPF là giải pháp thanh lịch cho câu hỏi của bạn nhưng không phải là giải pháp đơn giản hoặc dễ hiểu. Đã sử dụng CompositeWPF trong dự án cuối cùng của tôi, tôi dự định sẽ sử dụng lại nó cho ứng dụng thích hợp tiếp theo.
Cảm ơn! đó là chính xác những gì tôi đang sau! Cảm ơn bạn :) – NoizWaves