Gkar Geschrieben 13. Dezember 2011 Geschrieben 13. Dezember 2011 Hallo zusammen, ich versuche mich im moment mit der Sprache C# zu beschäftigen und als kleines "Projekt" möchte ich einen Aufgabenplaner erstellen. Leider muß ich mit den MS Chart auskommen und habe keinen Zugriff auf die kostenpflichtigen Alternativen. Das ganze soll eine Anlehnung an ein Gantt-Diagramm sein. Der grobe Aufbau sieht folgendermaßen aus. Eine Klasse Task speichert u.a. den Namen und Start- bzw. Endedatum der Aufgabe. Die einzelnen Tasks bündel ich in einer Liste. Nun zu meinem Problem.... ich schaffe es im moment nocht nicht das Diagramm zu aktualisieren. Leider zeigt er mir nur die (aus Testzwecken) fest in den Code geschriebenen Testdatensätze an. Eigentlich habe ich es mir so vorgestellt, dass sobald ich eine neue Aufgabe anlege (und mit OK bestätige), die Grafik sich aktualisiert und die neue Aufgabe auch angezeigt wird. ... Ich hoffe ich habe mich halbwegs verständlich ausgedrückt? Zur Veranschaulichung häng ich ein paar Codesegmente noch mit an: Klasse Task: public class Task { private String name; private DateTime startDateTime; private DateTime endDateTime; private TaskState currentState; } Die Liste der Tasks und das hinzufügen: private List<Task> tasks = new List<Task>(); public void addTask(Task task) { tasks.Add(task); } Das manuelle Hinzufügen mit Testdatensätzen: chart1.Series[series1].Points.AddXY(1, currentData.AddHours(12), currentData.AddDays(4)); chart1.Series[series1].Points[0].AxisLabel = "Task 1"; und hier mein bisheriger Versuch das ganze hinzuzufügen und zu aktualisieren: public void AddTaskToChart(TaskPlanChartArea chartArea) { chartArea.RemoveDataFromChart(); int i = 1; foreach (Task t in taskPlan.Tasks) { chartArea.AddTaskToChart(i); i++; } CreateChart(); } public void AddTasksToChart(TaskPlan taskplan) { chart1.Series[series1].Points.Clear(); int i = 1; for (int x = 0; x < taskplan.Tasks.Count; x++) { Task t = new Task(taskplan.Tasks[x].Name, taskplan.Tasks[x].StartDateTime, taskplan.Tasks[x].EndDateTime, taskplan.Tasks[x].CurrentState); chart1.Series[series1].Points.AddXY(i, t.StartDateTime, t.EndDateTime); chart1.Series[series1].Points[i - 1].AxisLabel = t.Name; i++; } chart1.Update(); chart1.Invalidate(); } Ich hoffe mir kann jemand einen kleinen Denkanstoß in die richtige Richtung geben. Im voraus schon einmal vielen Dank.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden