Построение график в WPF Toolkit

113
05 октября 2019, 15:00

Строю график, отражающий динамику прохождения тестов пользователем. На оси Y отражается коэффициент(результат), на Х - дата выполнения. Данные берутся из пользовательского класса (записи в БД), точке должен соответсвовать объект, чтобы по клику на нее построить диаграмму(уже решено).

Как я вижу конечный график:

только без лейблов над точками.

Основная проблема: если я пытаюсь построить грфик с привязкой IndependentValue к дате, то тесты, пройденные в один день, располагаются один под одним, а если с одинаковым результатом - то одной точкой. Мне надо, чтобы каждая точка была уникальной, пусть даже значения дат на оси X и будут дублироваться.

Пытался привязывать к ID записи - но тогда под осью отображается именно ID, а не дата. Искал, как изменить эти отображаемые значения - простого метода не нашел.

XAML:

xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
<DVC:Chart x:Name="recChart" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" LegendTitle="Стимул" LegendStyle="{DynamicResource LineSeriesLegendStyle}" Title="Динамика">
        <DVC:Chart.Axes>
            <DVC:LinearAxis Orientation="Y" HorizontalAlignment="Left" ShowGridLines="True"/>
            <DVC:CategoryAxis Orientation="X" VerticalAlignment="Bottom" ShowGridLines="True" AxisLabelStyle="{StaticResource Rotation}"/> <!---->
        </DVC:Chart.Axes>
        <DVC:Chart.Series>
            <DVC:LineSeries 
                x:Name="lsVisual"                     
                Title="Зрительный"
                IndependentValuePath="DateOfTesting"                     
                DependentValuePath="E" 
                ItemsSource="{Binding [0]}" 
                IsSelectionEnabled="True">
                <DVC:LineSeries.DataPointStyle>
                    <Style TargetType="DVC:LineDataPoint">
                        <EventSetter Event="MouseLeftButtonUp" Handler="LineDataPoint_MouseLeftButtonUp"/>
                        <Setter Property="Background" Value="Red" />
                    </Style>
                </DVC:LineSeries.DataPointStyle>
            </DVC:LineSeries>
            <DVC:LineSeries x:Name="lsAudio" 
                Title="Акустический" 
                IndependentValuePath="DateOfTesting"
                DependentValuePath="E" 
                ItemsSource="{Binding [1]}" 
                IsSelectionEnabled="True">
                <DVC:LineSeries.DataPointStyle>
                    <Style TargetType="DVC:LineDataPoint">
                        <EventSetter Event="MouseLeftButtonUp" Handler="LineDataPoint_MouseLeftButtonUp"/>
                        <Setter Property="Background" Value="Blue" />
                    </Style>
                </DVC:LineSeries.DataPointStyle>                    
            </DVC:LineSeries>
            <DVC:LineSeries x:Name="lsBlend" 
                Title="Смешанный" 
                IndependentValuePath="DateOfTesting"
                DependentValuePath="E" 
                ItemsSource="{Binding [2]}" 
                IsSelectionEnabled="True">
                <DVC:LineSeries.DataPointStyle>
                    <Style TargetType="DVC:LineDataPoint">
                        <EventSetter Event="MouseLeftButtonUp" Handler="LineDataPoint_MouseLeftButtonUp"/>
                        <Setter Property="Background" Value="Green" />
                    </Style>
                </DVC:LineSeries.DataPointStyle>
            </DVC:LineSeries>
            <DVC:LineSeries 
                x:Name="lsNoStimul" 
                Title="Без стимула" 
                IndependentValuePath="DateOfTesting"
                DependentValuePath="E" 
                ItemsSource="{Binding [3]}" 
                IsSelectionEnabled="True">
                <DVC:LineSeries.DataPointStyle>
                    <Style TargetType="DVC:LineDataPoint">
                        <EventSetter Event="MouseLeftButtonUp" Handler="LineDataPoint_MouseLeftButtonUp"/>
                        <Setter Property="Background" Value="Yellow"/>
                    </Style>
                </DVC:LineSeries.DataPointStyle>
            </DVC:LineSeries>
        </DVC:Chart.Series>
    </DVC:Chart>
</Grid>

CS:

public partial class RecordsChart : UserControl
{
    public delegate void PointClickDelegate(Record record);
    public event PointClickDelegate PointClicEvent;
    public RecordsChart(List<Record> records)
    {
        InitializeComponent();
        List<List<Record>> dataSourceList = SortByStimul(records);
        recChart.DataContext = dataSourceList;
    }
    private List<List<Record>> SortByStimul(List<Record> recordList)
    {
        List<Record> visual = new List<Record>();
        List<Record> audial = new List<Record>();
        List<Record> blend = new List<Record>();
        List<Record> noStimul = new List<Record>();
        foreach (Record record in recordList)
        {
            switch (record.Stimul)
            {
                case "Зрительный":
                    visual.Add(record);
                    break;
                case "Акустический":
                    audial.Add(record);
                    break;
                case "Смешанный":
                    blend.Add(record);
                    break;
                case "Без стимула":
                    noStimul.Add(record); 
                    break;
                default:
                    break;
            }
        }
        var dataSourceList = new List<List<Record>> { visual, audial, blend, noStimul };
        return dataSourceList;
    }
    private void LineDataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        var ls = sender as LineDataPoint;
        var record = ls.DataContext as Record;
        PointClicEvent(record);
    }
}

}

READ ALSO
web.config MVC запись

web.config MVC запись

Я хочу перезаписать данные в файл webconfig из секции

105
Live Charts Обработка нажатия

Live Charts Обработка нажатия

Работаю в Wpf с библиотекой Live ChartsНужно обработать нажатие на квадрат,чтобы квадрат заполнился или поменял цвет! Достиг только того что при...

139
Google Play Games Services проблема с аутентификацией

Google Play Games Services проблема с аутентификацией

Есть проблема в Unity с сервисами google play

118