Cho rằng tôi có một ứng dụng vỏ và một vài dự án mô-đun riêng biệt sử dụng Microsoft CompoisteWPF (Prism v2) ...Composite WPF (Prism) tài nguyên module dữ liệu mẫu
Khi nhận lệnh, một module tạo ra một mới ViewModel và thêm nó vào một vùng thông qua trình quản lý vùng.
var viewModel = _container.Resolve<IMyViewModel>();
_regionManager.Regions[RegionNames.ShellMainRegion].Add(viewModel);
Tôi nghĩ rằng tôi sau đó có thể tạo ra một từ điển tài nguyên trong các mô-đun và thiết lập một mẫu dữ liệu để hiển thị một cái nhìn đối với loại quan điểm mô hình đó đã được nạp (xem dưới đây XAML). Nhưng khi mô hình khung nhìn được thêm vào khung nhìn, tất cả những gì tôi nhận được là không gian tên của các kiểu khung nhìn được in ra.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:Modules.Module1.ViewModels"
xmlns:vw="clr-namespace:Modules.Module1.Views"
>
<DataTemplate DataType="{x:Type vm:MyViewModel}">
<vw:MyView />
</DataTemplate>
</ResourceDictionary>
Edit:
tôi có thể làm cho nó hoạt động bằng cách thêm vào App.xaml
<Application.Resources>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Module1;component/Module1Resources.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Module2;component/Module2Resources.xaml"/>
</ResourceDictionary.MergedDictionaries>
</Application.Resources>
nào là tốt, nhưng nó có nghĩa là mô-đun như mới được tạo ra, App. tệp xaml cần được thêm vào. Những gì tôi đang tìm kiếm là một cách cho các mô-đun, khi chúng tải để tự động thêm vào các Application.Resources. Điều này có thể không?
Phần đầu tiên của câu trả lời của bạn yêu cầu mô-đun của bạn tiếp cận với Ứng dụng. Tôi sẽ khuyên bạn nên chống lại điều này vì nó là không thể thực hiện được. Cách tiếp cận thứ hai là phù hợp hơn. –