Modul-Views: parameterloser Ctor + Initialize() (Designer-öffenbar)
Der VS-WinForms-Designer braucht einen parameterlosen Konstruktor, um eine Form zu instanziieren. Die drei Views hatten nur einen DI-Ctor -> Designer hätte sie nicht öffnen können. Umgestellt auf das Core-View-Muster (DashboardView): - Parameterloser Ctor: InitializeComponent() + Event-Wiring. - Initialize(deps): Abhängigkeiten setzen + Daten laden. - Felder nullable + Null-Guards in den Handlern. - CopyTradingModule.RegisterUi: new View() + view.Initialize(...) statt DI-Ctor. Verifiziert: Build grün, --smoke-ui grün (3 Accounts / 32 Trader, alle Views OK). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4caba5bfd1
commit
76007db93f
@@ -62,10 +62,15 @@ namespace PolyTrader.Modules.CopyTrading
|
||||
Title = "Master-Trader",
|
||||
Group = "CopyTrading",
|
||||
Order = 100,
|
||||
CreateForm = () => new MasterTradersView(
|
||||
services.GetRequiredService<ITrackedTraderRepository>(),
|
||||
services.GetRequiredService<TradingState>(),
|
||||
services.GetRequiredService<CopyTradingState>())
|
||||
CreateForm = () =>
|
||||
{
|
||||
var view = new MasterTradersView();
|
||||
view.Initialize(
|
||||
services.GetRequiredService<ITrackedTraderRepository>(),
|
||||
services.GetRequiredService<TradingState>(),
|
||||
services.GetRequiredService<CopyTradingState>());
|
||||
return view;
|
||||
}
|
||||
});
|
||||
|
||||
host.RegisterView(new ModuleView
|
||||
@@ -74,10 +79,15 @@ namespace PolyTrader.Modules.CopyTrading
|
||||
Title = "Geschlossene Copytrades",
|
||||
Group = "CopyTrading",
|
||||
Order = 110,
|
||||
CreateForm = () => new ClosedTradesView(
|
||||
services.GetRequiredService<ICopyTradeLogRepository>(),
|
||||
services.GetRequiredService<TradingState>(),
|
||||
services.GetRequiredService<CopyTradingState>())
|
||||
CreateForm = () =>
|
||||
{
|
||||
var view = new ClosedTradesView();
|
||||
view.Initialize(
|
||||
services.GetRequiredService<ICopyTradeLogRepository>(),
|
||||
services.GetRequiredService<TradingState>(),
|
||||
services.GetRequiredService<CopyTradingState>());
|
||||
return view;
|
||||
}
|
||||
});
|
||||
|
||||
host.RegisterView(new ModuleView
|
||||
@@ -86,10 +96,15 @@ namespace PolyTrader.Modules.CopyTrading
|
||||
Title = "Copytrading-Account-Einstellungen",
|
||||
Group = "CopyTrading",
|
||||
Order = 120,
|
||||
CreateForm = () => new AccountSettingsView(
|
||||
services.GetRequiredService<ICopyTradingAccountSettingsRepository>(),
|
||||
services.GetRequiredService<TradingState>(),
|
||||
services.GetRequiredService<CopyTradingState>())
|
||||
CreateForm = () =>
|
||||
{
|
||||
var view = new AccountSettingsView();
|
||||
view.Initialize(
|
||||
services.GetRequiredService<ICopyTradingAccountSettingsRepository>(),
|
||||
services.GetRequiredService<TradingState>(),
|
||||
services.GetRequiredService<CopyTradingState>());
|
||||
return view;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user