2016-04-11 19 views
0

Ich habe nichts in Tag für treenode getan. Dann ist es vielleicht eine sehr einfache Frage. Ich habe über das Internet gegoogelt und konnte nichts hilfreiches finden.aufrufen/mit dem angegebenen Attribut

Ich gebe ein paar Stichworte für Baumknoten über

public class NodeTag 
{ 
    public NodeTag(string name, string ID)//, bool component, string script, bool child) //,ref parrent 
    { 
     NodeName = name; 
     NodeID = ID; 
    } 
    public string NodeName { get; set; } 
    public string NodeID { get; set; } 
} 

zuweisen Nun möchte Ich mag Knoten nennen es-Tag. Ich möchte auf die NodeName zugreifen. Ich versuchte es als

var value = node.Tag; 

Aber es gibt mir beide Felder, wie man erwarten sollte. Ich habe einen Fehler, wenn ich verwende

var value = node.Tag.NodeID; 

Würden Sie mir bitte helfen?

+0

verwenden Was ist die Fehlermeldung? –

Antwort

0

Eine Tag-Eigenschaft hat den Objekttyp, um die Möglichkeit zu bieten, jedes Objekt als Node-Tag zu speichern. Sie müssen ein Objekt, das in einer Tag-Eigenschaft gespeichert ist, auf den erforderlichen Typ, insbesondere auf den NodeTag, umwandeln.

var id = ((NodeTag)node.Tag).NodeID 

Sie können einige Erweiterungsmethoden hinzufügen, um es leserfreundlich

public static int GetNodeID(this Node node) 
{ 
    return ((NodeTag)node?.Tag).NodeID; 
} 

Jetzt können Sie es

var id = node.GetNodeID(); 
0
var value = node.Tag as NodeTag; 
string node_ID = value.NodeID;