win form chart zmiana koloru słupka

0

wykres generuję tak

        public void Load()
        {           
            this._chart.Series["stan"].Points.Clear();

            IEnumerable<Silos> silo = Model.GetSiloStock();

            foreach (Silos si in silo)
            {
                this._chart.Series["stan"].Points.AddXY(si.numerZbiornika, si.iloscProduktu);
            }
        }

chciałbym dla si.iloscProduktu, które przyjmie określony poziom zmienić kolor słupka na inny.
Wykres ma jedną serię i tak być musi.

1

Możesz użyć Chart.Customize Event

Wyglądało by to mniej więcej tak:

_chart.Customize += (sender, args) => 
{
   foreach (DataPoint dataPoint in _chart.Series["stan"].Points.Where(x => x.YValues[0] > JakaśWartość))
   {
      dataPoint.Color = Color.Red;
   }
};
0

jest OK DibbyDum. Lekcja dla mnie proszę. Jak używa się Twojej konstrukcji? Ja napisałem coś takiego:

 
        private void chc_chart_Customize(object sender, EventArgs e)
        {
            foreach (DataPoint dataPoint in chc_chart.Series["stan"].Points.Where(x => x.YValues[0] > 5000))
            {
                dataPoint.Color = Color.Red;
            }
        }

Generalnie to mam klasę odpowiedzialną za generowanie wykresu/ów.
Spróbowałem i zadziałało zrobić też tak, że w klasie Wykres dodałem metodę

        public void CustomizeChart() // test do wyrzucenia
        {
            this._chart.Customize += (sender, args) =>
            {
                foreach (DataPoint dataPoint in this._chart.Series["stan"].Points.Where(x => x.YValues[0] > 5000))
                {
                    dataPoint.Color = Color.Red;
                }
            };
        }

i na formie w Load jej użyłem. Czyli w ten sposób mogę dostać się do Eventów kontrolek bez konieczności pisania metody na samej formie :)

0

Ta moje konstrukcja to wyrażenie lambda (Lambda Expressions).

Czyli w ten sposób mogę dostać się do Eventów kontrolek bez konieczności pisania metody na samej formie :)

Miedzy innymi. Ale też bez szaleństw żebyś nie zaczął nagle wszystkiego tam wpychać. Używaj do prostych funkcji 1-3 linie max. :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1