Ecco la mia configurazione:
- Backend del framework Entity
- Progetto WPF di grandi dimensioni con una finestra principale con 3-4 controlli utente, ognuno dei quali ha 3-4 controlli utente su di esso (e così via, in alcuni casi)
Che cosa ho attualmente:
public class MySettings
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
public string Property4 { get; set; }
}
public class FileService
{
public void HandleFile();
public event EventHandler FileChanged;
}
public class UserControl1
{
MySettings settings;
FileService fileService;
}
public class UserControl2
{
MySettings settings;
FileService fileService;
}
Ci sono alcuni UserControls (o VM) che devono conoscere la classe delle impostazioni. Ecco un esempio di cosa succede:
- Carichi dell'applicazione. L'utente accede alla "Finestra delle impostazioni".
- Impostazioni modifiche utente.
- UserControl1 riceve una notifica di modifica delle impostazioni e aggiunge un nuovo controllo utente
- UserControl2 viene avvisato di una modifica delle impostazioni e rende visibile uno stackpanel
- ecc, ecc., ecc.
Il mio dilemma:
Come gestisco tutti i controlli utente e le finestre che hanno accesso a queste classi? Domande specifiche:
- Devo creare una classe di impostazioni principale in un ViewModel di livello superiore e propagare questa classe di impostazioni attraverso una serie di submodelmodelli?
- Devo creare una classe statica per gestire tutti questi elementi?
- Il FileService dovrebbe essere propagato anche attraverso ogni ViewModel? Esiste un modo più pulito di fare Servizi assicurandosi che ogni controllo / finestra stia utilizzando lo stesso?