Zed Graph X оси этикетки - PullRequest
       17

Zed Graph X оси этикетки

0 голосов
/ 24 февраля 2011

Я пытаюсь перебрать мой столбец данных sdescr и использовать текст в столбцах в качестве меток моей оси x, но это не работает. Я получаю эту ошибку

Значение типа 'System.Collections.Generic.List (Of String) 'не может быть преобразован в «одномерный массив String».

For i As Integer = 0 To myCurve1.Points.Count - 1
        Dim pt As PointPair = myCurve1.Points(i)
        ' Create a text label from the Y data value   
        Dim text As New TextObj(pt.Y.ToString("f0"), pt.X, pt.Y + 0.1, CoordType.AxisXYScale, AlignH.Left, AlignV.Center)
        text.ZOrder = ZOrder.A_InFront
        text.FontSpec.Angle = 90
        myPane.GraphObjList.Add(text)


        Dim labels As New List(Of String)

        For Each row As DataRow In tablegraph.Rows
            labels = row.Item("SDESCR")
        Next row

        myPane.XAxis.Scale.TextLabels = labels
        myPane.XAxis.Type = AxisType.Text
    Next

1 Ответ

1 голос
/ 24 февраля 2011

Вам нужно удалить код, чтобы убрать метки из цикла For Next, который создает точки.

Что означает это

    Dim labels As New List(Of String)          
    For Each row As DataRow In tablegraph.Rows             
    labels = row.Item("SDESCR")         
    Next row          

    myPane.XAxis.Scale.TextLabels = labels         
    myPane.XAxis.Type = AxisType.Text

Теперь, вне точек построения петли, вам нужно пройти через таблицу данных

Пожалуйста, посмотрите на ошибку, которую вы получаете ... Список строк не может быть преобразован в массив строк. Эти объекты не эквивалентны.

Один из вариантов - сделать что-то вроде этого (после цикла для построения точек)

Dim labels(tablegraph.Rows.Count - 1) as String

For i As Integer = 0 To tablegraph.Rows.Count - 1
     labels(i) = tablegraph.Row(i).Item("SDESCR")
Next

myPane.XAxis.Scale.TextLabels = labels         
myPane.XAxis.Type = AxisType.Text

У меня нет Zed здесь на этом компьютере, поэтому я не проверял это в Visual Studio, но это должно дать вам очень приличное направление.

...