Alla ricerca di un buon approccio e di una struttura dati per risolvere questo problema

0

C # WinForms:

Un Combobox con alcuni elementi in.
Un foglio di calcolo con alcuni elementi in esso. Ogni riga ha anche una casella di controllo in modo che gli utenti possano selezionarli.

L'utente seleziona una voce nella casella combinata e fa clic su un pulsante Salva. Significa associare l'elemento Combobox agli elementi selezionati nel foglio di lavoro.

Q1: Qual è una buona struttura che posso utilizzare per tenere traccia di quale elemento della casella combinata è associato a quali elementi del foglio di calcolo?

NOTA: l'utente può anche muovere verso l'alto o verso il basso gli elementi nel foglio di calcolo. Quindi diventa un po 'complicato qui, potrebbero aver associato alcuni elementi, quindi hanno cambiato l'ordine o quegli elementi ma dobbiamo ancora sapere quali elementi sono selezionati per ogni elemento della casella combinata

Q2: Qual è un buon approccio per tenerne traccia?

    
posta Blake 17.05.2012 - 18:24
fonte

2 risposte

1

Puoi avere un elenco di oggetti ComboBox e ogni elemento di ComboBox ha un elenco di elementi di fogli di lavoro associati.

public class AssociatedComboItem
{
    public ComboItemType ComboItem{get;set;}
    public List<SSItem> Items{get;set;} // SpreadSheet items
}

e quindi da qualche parte nel tuo contesto, tieni un elenco di AssociatedComboItem per avere tutti gli oggetti ComboBox e gli elementi SpreadSheet associati.

public List<AssociatedComboItem> Items{get;set;}
...
Items.Where(c=>c.ComboItem == someComboItem).FirstOrDefault(); // To get some comboItem reference

Items.Where(c=>c.Items.Contains(ss=>ss == someSpreadSheetItem)).FirstOrDefault(); // To find a ComboBox item which contains a specific SpreadSheet item
    
risposta data 17.05.2012 - 19:37
fonte
2

Penso che entrambe le domande possano essere risolte contemporaneamente. Un Dictionary di sicuro. È possibile tenere traccia di quale elemento (chiave) è associato agli articoli (valore / i) sul foglio di calcolo. È importante associare la chiave e il suo valore (i) prima di modificare l'ordine, in modo da creare le associazioni corrette. Se vuoi che gli spaghetti siano abbinati a polpette di carne e parmigiano, non vuoi ordinare in quali sphagetti è abbinato il burro d'arachidi.

NOTA: un tuple è composto da due elementi abbinati. Un dictionary è una coppia che associa una chiave al suo valore (i).

    
risposta data 17.05.2012 - 18:37
fonte

Leggi altre domande sui tag