Ska försöka förklara det hela kortfattat; Du kan utöka den befintliga Noderna. Ärv av TreeNode och lägg till den fält och metoder du vill ha och sen lägger du in dessa noder istället för "standard" TreeNode. När du sedan tittar på en node castar du om den till din TreeNode typ och kan då titta på tex NodeType. Jag testade lite med det, men eftersom att många av noderna kommer laddas från databas gjorde jag såhär:Enklaste sättet att visa olika saker beroende på val i TreeView?
Jag har en TreeView som fungerar som meny. I den här finns en trädstruktur som innehåller flera olika "typer" av objekt.
Exempelvis: Säg att jag har följande: Stad->Område->Hus->Rum. Om användaren då klickar på "Stad" som givetvis är av typen stad vill jag att denna skall kunna ändra information om staden. Klickar den på "Område" skall den kunna ändra information om området och så vidare.
Jag funderar på ett skapa en UserControl för varje typ av objekt, och sedan ha en klass som jag lägger i Node.Tag som håller koll på typ av objekt och vilken UC som skall användas..
Är detta den bästa lösningen eller finns det bättre? Hoppas ni förstår hur jag menar..Sv: Enklaste sättet att visa olika saker beroende på val i TreeView?
class MyTreeNode:TreeNode
{
enum NodeTypeEnum
{
City
Area
House
Room
}
NodeTypeEnum nodeType;
NodeTypeEnum NodeType
{
get{return nodeType;}
set{nodeType = value;}
}
}
MyTreeNode selectedNode = (MyTreeNode) sender;
switch (selectedNode.nodeType)
{
case MyTreeNode.NodeType.City
....
}
Sv:Enklaste sättet att visa olika saker beroende på val i TreeView?
<code>
class MyNodeInformation
{
...
private string _userControlName;
public string UserControlName
{
get { return _userControlName; }
}
}
</code>
och laddar sedan in UCn med Reflection. Fördelen blir ju att jag har en tabell i databasen som innehåller alla nodtyper och dess UC, vilken gjorde det hela fint och dynamiskt efter lite tänkande! Tack ändå :)
MyNodeInformation stoppar jag sedan i .Tag för varje TreeNode.