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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.