Announcement

Collapse
No announcement yet.

treeView

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • treeView

    Hallo!<br>
    Ich suche eine Möglichkeit, Treenodes eindeutig voneinander unterscheiden zu können.
    Gibt es eine Möglichkeit bei einem TreeView mittels Property sicherzustellen, das ein Node Name jeweils nur 1 mal vorkommen darf? Oder ist es besser, eine eigene TreeNode Klasse zu erstellen, bei der eine eindeutige ID mitgespeichert wird?

  • #2
    Hallo Daniel,

    ich tendiere zu einer eigenen SubKlasse von TreeNode, die dann ohne weitere mit eigenen Inhalten erweitert werden kann.
    <pre>
    MyTreeNode : TreeNode {
    private Guid privateId = Guid.New;
    public Guid PrivateId {
    get {
    return privateId;
    }
    }
    }
    </pre>

    Jör

    Comment


    • #3
      Ich habe das ganze mittels SubKlassen realisiert.<br>
      Habe nun folgendes Problem: Ich habe 4 verschiedene TreeNode Subklassen in einem TreeView je nachdem welche SubKlasse ich auswähle sollte ein bestimmter Panel in meiner Form sichtbar werden. (SubKlasseA -> PanelA wird sichtbar, ..)<br>
      Soweit habe ich kein Problem, ich lese einfach mittels GetType den Typ aus und mache das zugehörige Panel sichtbar.<br>
      Auf diesen Panels sollten jetzt allerdings Detailinformationen zu der selektierten Node erscheinen und editierbar sein (Je nach NodeTyp verschiedene Informationen).<br>
      Ich weiß allerdings nicht, wie ich diese Detailinformationen auslesen/speichern soll, da ich mittels SelectedNode ja nur auf die Standard Members wie Text,.. zugreifen kann

      Comment


      • #4
        Hallo,

        hier muss man immer noch den Datentyp konvertieren.
        <pre>
        if (treeView.SelectedNode is MyTreeNode) {
        MyTreeNode node = (MyTreeNode)treeView1.SelectedNode;
        }
        </pre>
        Schöne Feiertage

        Jör

        Comment


        • #5
          Das mit dem Konvertieren ist mir klar, aber sobald ich Membervariablen verändere, möchte ich diese in der selektierten Node verändert speichern.<br>
          Bei dem obigen Beispiel könnte ich zwar zb mittels node.myVar=2 eine MemberVariable setzen, aber die Veränderung betrifft eben nur node und nicht treeView1.SelectedNode.<br>
          Da ich meinen Tree sowieso im XML Format abspeichern möchte, überlege ich, die Änderungen direkt in die XML Datei zu übertragen und beim Selektieren die Details zu der jeweiligen Node direkt aus dem XML File auszulesen.. allerdings weiß ich nicht, ob das performant genug ist.
          <br>
          btw: Schöne Feiertage ebenfalls :

          Comment


          • #6
            hat jemand eine alternative zu dem xml zwischenschritt?
            es muss doch eine möglichkeit geben über den TreeView auf eigene Subklassen von TreeNode zugreifen zu können?

            Comment


            • #7
              warum machst du dir das so umständlich? häng doch einfach an jeden treenode ein object ran, in dem dann etwas zum typ drin steht. An die Eigenschaft "Tag" kann man alles ranhängen und beim click dann auslesen

              Comment

              Working...
              X