Announcement

Collapse
No announcement yet.

TreeView WPF

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

  • TreeView WPF

    Hallo!

    Was ich möchte:

    Ein TreeView erstellen:


    Code:
    +Spieler
       +Turm 1
          +Etage 1
              Eigenschaft 1
              Eingenschaft 2
          +Etage 2
              Eigenschaft 1
              Eingenschaft 2
    Ein Spieler kann n Türme haben, ein Turm n Etagen, eine Etage n Eigenschaften.

    Ich habe mir das nun so gedacht, das ich ein übergeordnete Klasse "Model" habe, dieses enthällt einde Liste für jedes Spielerobjekt, jedes Spielerobjekt eine Liste mit den Turm objekten usw.

    Jedes übergeornete Objekt, stellt also einen Hauptknoten und kennt in Form einer Liste die Anzahl seiner Unterknoten.

    Das ganze soll in C# und WPF realisiert werden. Beides ist neu für mich.

    Was C# angeht fällts mir nicht sonderlich schwer einzusteigen, was WPF angeht ist das doch ganz schön hart. Natürlich finde ich via Google einige Sachen zum Thema "WPF Treeview", jedoch muss ich sagen das ich da schlecht bis garnicht durchsteige.

    Es wäre mehr als freundlcih wenn mir jemand mal ein Beispiel oder erklärung geben könnte, wie sich sowas realisieren lässt.

    Wenn ihr mit dem Thread vorerst nichts anfangen könnt, bitte stellt fragen und lasst mich nciht hängen.
    Status: Anfänger
    C# mit Visual Studio 2008
    WPF mit Expression Blend 3 / Visual Studio 2008
    OS Windows XP Professional SP2

  • #2
    Wenn du "schlecht bis gar nicht" durchsteigst, wirst du hier schwerlich eine passende Antwort kriegen. Je besser das Problem eingegrenzt ist, umso besser kann man helfen. In diesem Fall würde ich sagen - weiter Beispiel im Internet suchen und durcharbeiten und bei einem konkreten Problem natürlich wieder hier nachfragen :
    einfaches Beispiel
    bubbling events
    Treeview mit dynamischen Daten (komplex)

    bye,
    Helmut

    Comment


    • #3
      Hallo Helmut!

      Mit einer solcehn Antwort hab ich gerechnet, denn geanu das ist mein Problem: Ich kann im Moment garnicht geanu sagen, was ich nicht verstehe, ergo auch nicht speziell danach suchen. Dein letztes Beispiel allerdings fidne ich sehr gelunge, vielen Dank dafür udn auch dafür das du dich meienr Annimmst. Ich werd mich dann in fall der Fälle wieder melden.

      Bis dann
      Status: Anfänger
      C# mit Visual Studio 2008
      WPF mit Expression Blend 3 / Visual Studio 2008
      OS Windows XP Professional SP2

      Comment


      • #4
        So.

        Nun meine Frage wie kann ich ein element im Tree identifizieren?

        Das Spieler Objekt:
        [highlight=c#]
        public class Player
        {
        string m_name;
        public string Name
        {
        get { return m_name; }
        set { m_name = value; }
        }

        List<Tower> m_listTower;
        public List<Tower> listTower
        {
        get { return m_listTower; }
        set {m_listTower= value; }
        }

        public PrintTower(string str)
        {
        m_name = str;
        m_listTower= new List<Tower>();
        }
        }
        [/highlight]

        Das Objekt für Turm etc. sieht genauso aus.


        Der Tree der angezeigt wird, wird von einer List<Player> repräsentiert.
        [highlight=c#]
        public class ListPlayerList : List<Player>
        {
        public ListPlayerList ()
        {
        ....
        }
        }
        [/highlight]

        XAML-Code:
        [highlight=xml]
        <Window.Resources>
        <src:ListPlayerList x:Key="MyList"/>
        <HierarchicalDataTemplate DataType="{x:Type src:Player}"
        ItemsSource="{Binding Path=listTower}">
        <TextBlock Text="{Binding Path=Name}"/>
        </HierarchicalDataTemplate>
        </Window.Resources>
        <Grid>
        <TreeView>
        <TreeViewItem
        ItemsSource="{Binding Source={StaticResource MyList}}"
        Header="Spieler">
        </TreeViewItem>
        </TreeView>
        </Grid>
        [/highlight]

        Wenn ich jetzt Beispielsweise auf einen Turm Klicke, wie weiß ich dann welcher Turm angeklickt wurde?
        Zuletzt editiert von ec8or; 08.12.2009, 10:24.
        Status: Anfänger
        C# mit Visual Studio 2008
        WPF mit Expression Blend 3 / Visual Studio 2008
        OS Windows XP Professional SP2

        Comment

        Working...
        X