WPF PieChart начинка - PullRequest
       2

WPF PieChart начинка

0 голосов
/ 29 ноября 2011

У меня есть следующий код:

private void LoadPieChartData()
{
    LinkedList<String> kostenstellen = rep.GetKostenstellen();

    for (int i = 0; i < kostenstellen.Count; i++)
    {
        ((ColumnSeries)PieChart.Series[i]).ItemsSource = new KeyValuePair<string, double>[]{
           new KeyValuePair<string,double>(kostenstellen.ElementAt(i), i+1)
           };
        }
    }
}

Мой Xaml выглядит так:

<DVC:Chart HorizontalAlignment="Left" Margin="625,44,0,0" Name="PieChart" VerticalAlignment="Top" Height="276" Width="256" > 
    <DVC:Chart.Series>
        <DVC:PieSeries Title="FirstPiece" ItemsSource="{Binding LoadPieChartData}" IndependentValueBinding="{Binding Path=Key}" DependentValueBinding="{Binding Path=Value}" />
        <DVC:PieSeries Title="SecondPiece" ItemsSource="{Binding LoadPieChartData}" IndependentValueBinding="{Binding Path=Key}" DependentValueBinding="{Binding Path=Value}" />
    </DVC:Chart.Series>
</DVC:Chart>

Моя проблема в том, что значение i в цикле for можно повысить примерно до 20. Итак, мне нужно около 20 PieSeries, чтобы создать их динамически невозможно, насколько я знаю.
Как я могу справиться с этим?

1 Ответ

1 голос
/ 29 ноября 2011

Если вы пытаетесь просто отобразить круговую диаграмму с несколькими сегментами, все, что вам нужно сделать, это привязать коллекцию к одному PieSeries 'ItemsSource свойству:

<DVC:Chart Name="PieChart">
    <DVC:Chart.Series>
        <DVC:PieSeries ItemsSource="{Binding LoadPieChartData}" 
                       IndependentValueBinding="{Binding Path=Key}" 
                       DependentValueBinding="{Binding Path=Value}" />
    </DVC:Chart.Series>
</DVC:Chart>

Я использовал следующее свойство:

public IEnumerable<KeyValuePair<string,int>> LoadPieChartData
{
    get
    {
        for (int i = 0; i < 20; i++)
        {
            yield return new KeyValuePair<string, int>("Item " + i, i);
        }
    }
}

И я получаю следующий график:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...