This my code behind form ExpressionOfNeeds
private readonly IExpressionOfNeeds _expressionOfNeeds;
public FrmExpressionOfNeeds(IExpressionOfNeeds expressionOfNeeds)
{
InitializeComponent();
_expressionOfNeeds = expressionOfNeeds;
}
private async void FrmExpressionOfNeeds_Load(object sender, EventArgs e)
{
GCData.DataSource = await _expressionOfNeeds.GetAllExpressionOfNeeds();
}
and this my code behind MainForm
private readonly IExpressionOfNeeds _expressionOfNeeds;
private readonly IService2 _service2;
private readonly IService3 _service3;
//and so on and so forth
public XtraMain()
{
InitializeComponent();
}
private void bbtnExpressionOfNeeds_ItemClick(object sender, ItemClickEventArgs e)
{
FrmExpressionOfNeeds frme = new(_expressionOfNeeds)
{
Name = "FrmExpressionOfNeeds"
};
ViewChildForm(frme);
}
private void bbtnForm2_ItemClick(object sender, ItemClickEventArgs e)
{
Form2 frme = new(_service2)
{
Name = "Form2"
};
ViewChildForm(frme);
}
private void bbtnForm3_ItemClick(object sender, ItemClickEventArgs e)
{
Form3 frme = new(_service3)
{
Name = "Form3"
};
ViewChildForm(frme);
}
and so on and so forth
and this is my code behind Program class
static void Main()
{
var builder = new HostBuilder()
.ConfigureServices((hostContext, services) =>
{
services.AddScoped<XtraMain>();
services.AddSingleton<ISqlDataAccess, SqlDataAccess>();
services.AddSingleton<IExpressionOfNeeds, ExpressionOfNeeds>();
});
var host = builder.Build();
using (var serviceScope = host.Services.CreateScope())
{
var services = serviceScope.ServiceProvider;
var mainform = services.GetRequiredService<XtraMain>();
Application.Run(mainform);
}
}
the problem is that the value of _expressionOfNeeds is always null and I can't find a way to Initialize it
Update
I have lots of forms and lots of Interfaces
I've only limited it to one example so the code isn't too big.