Как генерировать случайные значения для построения диаграммы в wpf? - PullRequest
2 голосов
/ 24 января 2012

Я использую элементы управления диаграммами WPF, загруженные с http://wpf.codeplex.com/releases/view/40535

Здесь я пытаюсь построить диаграмму, и это мой пример кода

public partial class Window1 : Window
{
    List<Institute> list = new List<Institute> {
        new Institute { Subject = "Computers", students = 122 },
        new Institute { Subject = "Physics", students = 170 },
        new Institute { Subject = "Maths", students = 210 },
        new Institute { Subject = "Chemistry", students = 1840 },
        new Institute { Subject = "Electronics", students = 140 },
        new Institute { Subject = "Economics", students = 20 },
        new Institute { Subject = "Science", students = 100 },
        new Institute { Subject = "Scocial", students = 110 },
        new Institute { Subject = "English", students = 120 },
        new Institute { Subject = "Biology", students = 130 },
        new Institute { Subject = "Zoology", students = 140 },
        new Institute { Subject = "Hindi", students = 150 }};

    public Window1()
    {
        InitializeComponent();
        ColumnSeries bs = mcChart.Series[0] as ColumnSeries;
        bs.ItemsSource = list;           
    }

}
public class Institute
{
    public string Subject
    {
        get;
        set;
    }
    public int students
    {
        get;
        set;
    }
}

XAML-код

<Window x:Class="net.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:DV="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
Title="Window1" Height="800" Width="800" xmlns:my="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit">
<Grid>
    <DVC:Chart Canvas.Top="80" Canvas.Left="10" Name="mcChart"
       Width="800" Height="450" FontSize="12"
       Background="DarkGray" Foreground="DarkRed">
        <DVC:Chart.Series>
            <DVC:ColumnSeries x:Name="Barchart" Title="Students of an institute"
        ItemsSource="{Binding}" 
        IndependentValueBinding="{Binding Path=Subject}"
        DependentValueBinding="{Binding Path=students}" >
                <DVC:ColumnSeries.DataPointStyle>
                    <Style TargetType="DVC:ColumnDataPoint">
                        <Setter Property="Background" Value="#001100"/>                          
                    </Style>
                </DVC:ColumnSeries.DataPointStyle>
            </DVC:ColumnSeries>               
        </DVC:Chart.Series>
    </DVC:Chart>
</Grid>

С помощью этого кода я могу построить график, но мне нужно построить его динамически.

Когда я запускаю этот код, мне нужно генерировать случайное число студентов (используя Random) для каждого предмета непрерывно, и график должен строиться на основе новых значений. Это означает, что я хочу видеть динамические изменения в этом графике в графическом интерфейсе

Возможно ли это?

Если это возможно, пожалуйста, ответьте.

Заранее спасибо.

1 Ответ

0 голосов
/ 24 января 2012

Вы можете использовать ObservableCollection для этого. Когда ваша коллекция будет изменена, вызовите событие CollectionChanged, и ваш график получит повторное связывание. Проверьте этот пример из MSDN или этот .

Надеюсь, это работает для вас.

...