Ho un MenuManager classe a cui ogni modulo può aggiungere una chiave e ed elemento ad essere caricato nel contenuto principale:Qual è la migliore raccolta C# con due chiavi e un oggetto?
private Dictionary<string,object> _mainContentItems = new Dictionary<string,object>();
public Dictionary<string,object> MainContentItems
{
get { return _mainContentItems; }
set { _mainContentItems = value; }
}
Così il modulo cliente registra la sua vista in questo modo:
layoutManager.MainContentViews.Add("customer-help", this.container.Resolve<HelpView>());
layoutManager.MainContentViews.Add("customer-main", this.container.Resolve<MainView>());
Così poi di portare una vista specifica per la parte anteriore dico:
layoutManager.ShowMainContentView("customer-help");
E per ottenere il vista predefinita (prima vista registrata), dico:
layoutManager.ShowDefaultView("customer");
E questo funziona bene.
Tuttavia, voglio eliminare il "codice di odore" con il trattino che separa il nome del modulo e vista nome, quindi vorrei registrare con questo comando:
layoutManager.MainContentViews.Add("customer","help", this.container.Resolve<HelpView>());
Ma qual è il modo migliore per sostituire il mio attuale dizionario, ad es ciò che viene in mente sono questi:
Dictionary<string, string, object> (doesn't exist)
Dictionary<KeyValuePair<string,string>, object>
Dictionary<CUSTOM_STRUCT, object>
La nuova collezione deve essere in grado di fare questo:
- ottenere una vista con modulo e tasto di visualizzazione (ad es. "cliente", "aiuto" restituisce 1 visualizzazione)
- ottiene una raccolta di tutte le viste in base alla chiave del modulo (ad es. "cliente" restituisce 5 visualizzazioni)
elegante in uso. – Will
ha funzionato bene, grazie. –
Se solo avessi visto un altro var lì ... – nawfal