Laden...

Silverlight 5: Drag & Drop in Säulendiagramm (gestapelt, gruppiert)

Erstellt von St_W vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.368 Views
S
St_W Themenstarter:in
39 Beiträge seit 2009
vor 12 Jahren
Silverlight 5: Drag & Drop in Säulendiagramm (gestapelt, gruppiert)

Hallo,

ich möchte ein gestapeltes, gruppiertes Säulendiagramm in Silverlight 5 realisieren, wobei man einzelne Elemente per Drag & Drop verschieben bzw. kopieren (mit gedrückter Strg-Taste) können soll (siehe MS-Paint Entwurfsschemagrafik im Anhang).

Ich habe mir bereits einige Beispielprogramme zu Säulendiagrammen sowie Drag&Drop angesehen, u.a. jene aus dem Silverlight Toolkit. Da dies jedoch meine erste Erfahrung mit Silverlight ist nun meine Frage an euch:

Wie kann man mein beschriebenes Diagramm am besten/einfachsten realisieren?
Gibt es bestehende Implementierungen, auf denen man aufbauen kann? (welche?)
Aus welchen Steuerelementen würdet ihr das Diagramm aufbauen?
Sind alle meine beschriebenen Funktionen überhaupt mit Silverlight realisierbar?

Die Daten werden per WCF RIA Services (ebenfalls Neuland für mich) / Entity Framework aus einer SQL Server 2008 R2 Express Tabelle ausgelesen, die (vereinfacht) wie folgt strukturiert ist:
[diagramm_id (INT) (FK,PK)],
[kategorie (INT; A,B,C,...) (FK,PK)],
[subkategorie (BIT; 1/2) (PK)],
[Reihenfolge (INT; je größer, desto weiter oben im Stapel) (PK)]
[Wert (INT; vertikale Ausdehnung (Höhe) im Diagramm)]

In welcher Form lassen sich die gegebenen Daten am Besten/einfachsten Speichern, um z.B. auch Datenbindung zu ermöglichen? (bzw. ist dies überhaupt möglich?)

Ich habe bereits längere Erfahrung mit C# sowie XAML (WPF), bin jedoch völlig neu bei Silverlight und bitte dies in der Beantwortung meiner Fragen zu berücksichtigen.

Für weitere Vorschläge, Verweise auf Bücher/Tutorials/Blogeinträge etc. diesbzgl. bin ich natürlich ebenso dankbar.

Vielen Dank für eure Antworten im Voraus!

freundliche Grüße,
St_W

T
574 Beiträge seit 2008
vor 12 Jahren

Zum Aufbau:
Ich würde das Einfach mit einer Reihe von Stackpaneln (Orientation Horizontal) aufbauen in einem Stackpanel (Vertical). Jedes inner Stackpanel stellt eine "Spalte" (X) dar. In das Stackpanel kommen nacheinander Border mit der definierten Farbe und Größe (Y).

Stackpanel
  Stackpanel (A1)
     Border (rot), Border (gelb), Border (rot)
  Stackpanel (A2)
     Border (grün), Border (gelb), Border (grün), Border (grün)
  Stackapenl (B1)
...

Dann das ganze um 90 Grad drehen.

Mit dem Drag&Drop brauchst du dann den entsprechenden Border eigentlich nur mehr aus einem Stackpanel in ein anderes verschieben.

5.742 Beiträge seit 2007
vor 12 Jahren

Mit dem Drag&Drop brauchst du dann den entsprechenden Border eigentlich nur mehr aus einem Stackpanel in ein anderes verschieben.

Bzw. sogar komfortabler:
Ein ItemsControl verwenden (bzw. eine Listbox mit entsprechendem Template in SL) und dann das Diagramm anhand von Objekten automatisch generieren lassen.
Dann kannst du das "verschieben" durch das Hinzufügen bzw. Entfernen eines Objektes aus einer Liste lösen.

5.658 Beiträge seit 2006
vor 12 Jahren

Hi St_W,

ich dir würde auch zu winsharps Variante raten.

Zur Umsetzung von Drag & Drop haben mir diese beiden Artikel am meisten geholfen. Hab allerdings keine Ahnung, was es da bei Silverlight für Unterschiede gibt.
Implementieren von Drag & Drop
Drag & Drop in WPF... Explained end to end.

Christian

Weeks of programming can save you hours of planning