Пример #1
0
        /// <summary>
        /// Отрисовка данных на графике
        /// </summary>
        public void Draw()
        {
            m_children.Clear();

            ClearManagers();
            DrawingVisual dv = null;

            var rowsI = Leasings.Select(l => l.RowIndex).Distinct().OrderBy(i => i);

            //отрисовка Layout'ов для строк графика
            if (m_rowLayoutM != null)
            {
                foreach (var i in rowsI)
                {
                    dv = m_rowLayoutM.DrawRowLayout(i);

                    if (dv != null)
                    {
                        m_children.Add(dv);
                    }
                }
            }

            RedrawGrid(rowsI);

            //отрисовка прямоугольников и текста
            if (m_barM != null && m_textM != null)
            {
                foreach (var bm in Leasings)
                {
                    dv = m_barM.DrawBar(bm);

                    if (dv != null)
                    {
                        m_children.Add(dv);
                    }

                    dv = m_textM.DrawText(bm);

                    if (dv != null)
                    {
                        m_children.Add(dv);
                    }
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Перерисовка сетки
        /// </summary>
        public void RedrawGrid(IEnumerable <int> rowsI = null)
        {
            if (rowsI == null)
            {
                rowsI = Leasings.Select(l => l.RowIndex).Distinct().OrderBy(i => i);
            }

            //для случаев, когда меняется размер контрола, а сетка остаётся прежней
            if (m_gridM != null)
            {
                DrawingVisual dv = null;

                //отрисовка строк сетки
                foreach (var i in rowsI)
                {
                    dv = m_gridM.DrawRow(i);
                    if (dv != null)
                    {
                        if (!m_children.Contains(dv))
                        {
                            m_children.Add(dv); //строки
                        }
                    }
                }
                //отрисовка колонок сетки
                var colCount = DayCount + 1;
                for (int i = 1; i < colCount; i++)
                {
                    dv = m_gridM.DrawColumn(i);
                    if (dv != null)
                    {
                        if (!m_children.Contains(dv))
                        {
                            m_children.Add(dv);
                        }
                    }
                }
            }
        }