Announcement

Collapse
No announcement yet.

Daten aus Objekten in einer Tree View darstellen

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

  • Daten aus Objekten in einer Tree View darstellen

    Hallo zusammen,

    wie kann ich denn am einfachsten Attribute aus einem Objekt in einer TreeView darstellen. Stichwort DataBinding??? Oder einfach selbst eine Methode schreiben die via addNote... den Tree View füllt? Was habe ich hier für Möglichkeiten?

    Danke!

  • #2
    Hallo,

    mittels Reflection kann auf die Attribute zugegriffen werden.

    [highlight=c#]
    object o = new object();
    o.GetType().Attributes.........
    [/highlight]

    Edit: Ich hab vorhin zu ungenau gelesen -> Antwort kommt noch...

    mfG Gü
    Zuletzt editiert von gfoidl; 27.05.2009, 16:35.
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      das ist ja eigentlich so weit klar!

      im visual studio habe ich doch die möglichkeit unter data/DataBindings Objekte als Datenquelle anzugeben. Kann zwar eine neue Datenquelle bzw. einen Klasse auswählen,
      aber weiterhin nichts! Was kann ich tun?

      danke!

      Comment


      • #4
        Die Überschrift läßt vermuten das du Properties meinst (da du von Objekten und nicht von Klassen sprichst) im Text sprichst du aber von Attributen.

        Was ist den jetzt wirklich gemeint Attribute oder Properties?

        Comment


        • #5
          sorry kann dir nicht folgen, ich möchte die Werte aus Attributen eines Objektes holen!

          Comment


          • #6
            das ist ja eigentlich so weit klar!
            Werte aus Attributen eines Objektes
            Kennst du den Unterschied zwischen Attribut und Wert?
            Ich weiß jetzt nicht mehr was du meins

            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Bei der Antwort meinst du wahrscheinlich Properties.

              [Highlight=c#][DebuggerDisplay("MeinWert = {MeinWert }")] // <- Attribut einer Klasse
              public class MeineKlasse
              {
              [Serializable] // <- Attribut einer Property
              public int MeinWert // <- Property
              {
              get
              {
              return meinWert;
              }
              set
              {
              meinWert = value;
              }
              }
              }[/Highlight]

              Comment


              • #8
                also folgendermaßen:

                ein Objekte enthält Attribute und Methoden. Ein Attribut eines Objektes kann einen Wert annehmen.

                Comment


                • #9
                  ein Objekte enthält Attribute und Methoden. Ein Attribut eines Objektes kann einen Wert annehmen.
                  Nö. Ersetze im Sprachgebrauch Attribute durch Property. Attribute sind in C# was anderes.

                  Comment


                  • #10
                    Attribute auslesen

                    Die Attribute (aus dem Sprachgebrauch von C#) könnten zB mit

                    [highlight=c#]
                    using System;
                    using System.Windows.Forms;

                    namespace WindowsFormsApplication1
                    {
                    public partial class Form1 : Form
                    {
                    public Form1()
                    {
                    InitializeComponent();
                    }

                    private void button1_Click(object sender, EventArgs e)
                    {
                    Foo foo = new Foo();
                    FillTreeViewWithAttributes(new object[] { foo }, treeView1);
                    }

                    public void FillTreeViewWithAttributes(object[] objects, TreeView treeView)
                    {
                    treeView.Nodes.Clear();

                    foreach (object o in objects)
                    {
                    Type t = o.GetType();

                    TreeNode tNode = new TreeNode(t.FullName);
                    treeView.Nodes.Add(tNode);

                    string[] attributes =
                    o.GetType().Attributes
                    .ToString().Split(new char[] { ',' });

                    foreach (string attr in attributes)
                    tNode.Nodes.Add(attr.Trim());
                    }
                    }
                    }

                    [Serializable()]
                    internal sealed partial class Foo
                    {

                    }
                    }
                    [/highlight]

                    in einem TreeView dargestellt werden. Für Was das gut sein soll weiß ich aber nicht.

                    mfG Gü
                    Zuletzt editiert von gfoidl; 27.05.2009, 17:28.
                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                    Comment


                    • #11
                      Aber mal zur Lösung deines Problems. Treeview beherscht kein Databinding.
                      Auf Codeproject gibts aber reichlich Implementierung von Treeviews die das Beherschen. Such die eine passende Variante aus.

                      Ein Beispiel
                      http://www.codeproject.com/KB/tree/dbTree.aspx

                      Comment


                      • #12
                        ein Objekte enthält Attribute und Methoden. Ein Attribut eines Objektes kann einen Wert annehmen.
                        OK. Du meinst also Eigenschaften (Properties auf englisch).

                        Es gibt keine Datenbindung im TreeView welche dies ermöglicht.

                        Je nach Struktur deiner Objekte muss das TreeView aufgebaut werden (-> siehe auch obiges Beispiel von mir). Hinweis: Rekursion könnte ein Stichwort werden (bzw. Stack-Alternativen)

                        mfG Gü
                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                        Comment

                        Working...
                        X