Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

C# - RangeBarChart aktualisieren?

Empfohlene Antworten

Veröffentlicht

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.