Wie zu verwenden TreeView.Tag = Objekt?
Etwas wie dieses:
Dictionary<int, string> myData = new Dictionary<int, string>();
myData.Add(1, "England");
myData.Add(2, "Canada");
myData.Add(3, "Australia");
myTreeView.Node[0].Tag = myData;
Dann möchte ich, um dieses Objekt, wie soll ich es tun ?
Wie:
string str = new string();
str = myTreeView.Node[0].Tag[2]; //"str" should be equal to "Canada"
myTreeView.Node[0].Tag[1] = "Spain";
str = myTreeView.Node[0].Tag[1]; //now "str" is equal to "Spain"
Zweite Frage - was gibt diesen Ausdruck:
Dictionary<int, string> myData = new Dictionary<int, string>();
myData.Add(1, "England");
myData.Add(2, "Canada");
myData.Add(3, "Australia");
string str1 = new string();
str = myData[4]; //there isn't such a key as 4
Exception oder null ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Control.Tag
ist typisiert alsobject
so müssen Sie geworfen auf es alsDictionary<int, string>
:Ebenso ein Wert festgelegt werden:
Wenn Sie versuchen, Zugriff auf eine nicht existente Schlüssel, ein
KeyNotFoundException
geworfen werden. Sie können überprüfen, ob das Wörterbuch enthält einen bestimmten Schlüssel mitTryGetValue
oderContainsKey
:TryGetValue funktioniert der lookup-und setzt die angegebene variable auf den Wert (es existiert) in einem einzigen Aufruf, so ist in der Regel bevorzugt.
Gut, Sie konnte nur versuchen, es selbst oder Lesen Sie die Dokumentation (es gibt eine Ausnahme).
Auch, Ihr code wird nicht kompiliert, wie geschrieben.
Tag
ist ein Weg zu assoziieren, beliebige Daten mit einem Objekt. Als Ergebnis, Ihrer Art istobject
, so dass Sie brauchen, um Sie zu wirken, bevor Sie es verwenden, wie Sie tun.Wenn Ihr code immer unhandlich wegen überbeanspruchung des
Tag
Eigenschaft würde ich empfehlen die Erstellung Ihrer eigenen node-Typ erbt von der Standard -TreeNode
(oder was auch immer es ist) und das laden von Daten in die Strukturansicht mit dieser Art von Objekt statt.