feat(03-08): DI registration + MainWindow wiring for Search and Duplicates tabs
- App.xaml.cs: register ISearchService, SearchCsvExportService, SearchHtmlExportService, SearchViewModel, SearchView, IDuplicatesService, DuplicatesHtmlExportService, DuplicatesViewModel, DuplicatesView - MainWindow.xaml: add x:Name to SearchTabItem and DuplicatesTabItem (remove FeatureTabBase stubs) - MainWindow.xaml.cs: wire SearchTabItem.Content and DuplicatesTabItem.Content via DI
This commit is contained in:
@@ -95,6 +95,19 @@ public partial class App : Application
|
||||
services.AddTransient<StorageViewModel>();
|
||||
services.AddTransient<StorageView>();
|
||||
|
||||
// Phase 3: File Search
|
||||
services.AddTransient<ISearchService, SearchService>();
|
||||
services.AddTransient<SearchCsvExportService>();
|
||||
services.AddTransient<SearchHtmlExportService>();
|
||||
services.AddTransient<SearchViewModel>();
|
||||
services.AddTransient<SearchView>();
|
||||
|
||||
// Phase 3: Duplicates
|
||||
services.AddTransient<IDuplicatesService, DuplicatesService>();
|
||||
services.AddTransient<DuplicatesHtmlExportService>();
|
||||
services.AddTransient<DuplicatesViewModel>();
|
||||
services.AddTransient<DuplicatesView>();
|
||||
|
||||
// Phase 2: Permissions
|
||||
services.AddTransient<IPermissionsService, PermissionsService>();
|
||||
services.AddTransient<ISiteListService, SiteListService>();
|
||||
|
||||
@@ -47,11 +47,11 @@
|
||||
<TabItem x:Name="StorageTabItem"
|
||||
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.storage]}">
|
||||
</TabItem>
|
||||
<TabItem Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.search]}">
|
||||
<controls:FeatureTabBase />
|
||||
<TabItem x:Name="SearchTabItem"
|
||||
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.search]}">
|
||||
</TabItem>
|
||||
<TabItem Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.duplicates]}">
|
||||
<controls:FeatureTabBase />
|
||||
<TabItem x:Name="DuplicatesTabItem"
|
||||
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.duplicates]}">
|
||||
</TabItem>
|
||||
<TabItem Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.templates]}">
|
||||
<controls:FeatureTabBase />
|
||||
|
||||
@@ -26,6 +26,12 @@ public partial class MainWindow : Window
|
||||
// Replace Storage tab placeholder with the DI-resolved StorageView
|
||||
StorageTabItem.Content = serviceProvider.GetRequiredService<StorageView>();
|
||||
|
||||
// Replace Search tab placeholder with the DI-resolved SearchView
|
||||
SearchTabItem.Content = serviceProvider.GetRequiredService<SearchView>();
|
||||
|
||||
// Replace Duplicates tab placeholder with the DI-resolved DuplicatesView
|
||||
DuplicatesTabItem.Content = serviceProvider.GetRequiredService<DuplicatesView>();
|
||||
|
||||
// Replace Settings tab placeholder with the DI-resolved SettingsView
|
||||
SettingsTabItem.Content = serviceProvider.GetRequiredService<SettingsView>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user