imho si hanno diverse strategie:
bastone un oggetto di qualsiasi tipo nella proprietà Tag di qualsiasi nodo: rovescio della medaglia: dovrete lanciare di nuovo al suo 'nativo modulo 'quando lo si recupera per usarlo: se quel "modulo nativo" è tutto tranne il tipo' Oggetto.
Sottoclasse TreeNode e aggiungere un campo pubblico, Proprietà pubbliche o qualsiasi altra cosa, per i propri oggetti ... o anche Elenco ... ... o qualsiasi cosa sia necessario associare al nodo.
assumendo gli oggetti sono dello stesso tipo, si potrebbe creare un dizionario di tipo: Dizionario < TreeNode, myObjectType >, un'istanza, e, se necessario, memorizzare un TreeNode e il suo oggetto associato (s) in questo modo come una coppia chiave/valore.
Strategie # 1 e # 3 hanno il vantaggio che è possibile memorizzare un oggetto associato solo come strategia necessaria # 2: è più adatta al caso in cui si prevede ogni TreeNode sta per avere un oggetto associato (S).
Ovviamente con gli stracci 1 e 3, è necessario testare in fase di esecuzione per la presenza o l'assenza di un oggetto associato a un nodo particolare.
La strategia numero 1 è un test semplice: se la proprietà del nodo del nodo è nulla: si sa che non c'è alcun oggetto: se non è null ... e potrebbero esserci più tipi di oggetti memorizzati nel campo Tag. quindi dovrai estrarre l'oggetto Tag e assicurarti che sia del tipo corretto come in: (l'esempio che segue presuppone che una classe pubblica, "Class1", sia stata assegnata al tag del primo nodo in TreeView:
TreeNode thisNode = theTreeView.Nodes[0];
if (((thisNode.Tag != null) && (thisNode.Tag is Class1))) ... handle the object ...
strategia # 3 è un po 'più facile perché si può solo valutare se il Dizionario < Nodo, myObject > .Contains il nodo come una chiave.
Strategia # 1 sembra essere la migliore per me. Ci proverò, thx – Kai
Penso che sia un oggetto che tiene piuttosto che "Binding". –