2017-03-03 1 views
6

Ich habe eine sehr schwierige Zeit zu verstehen, was eigentlich mit LiveCharts passieren soll. Ich habe einen Block von XAML hier:Grundlagen von LiveCharts - Wie zeichne ich eine Linie?

<Grid> 
    <Grid.Background> 
     <ImageBrush ImageSource="/CPF;component/Images/background-top-cropped2.png" Stretch="None"></ImageBrush> 
    </Grid.Background> 
    <lvc:CartesianChart Series="{Binding myData}" LegendLocation="Right" x:Name="myChart"> 
     <lvc:CartesianChart.AxisY> 
      <lvc:Axis Title="Sales" LabelFormatter="{Binding YFormatter}"></lvc:Axis> 
     </lvc:CartesianChart.AxisY> 
     <lvc:CartesianChart.AxisX> 
      <lvc:Axis Title="Month" Labels="{Binding Labels}"></lvc:Axis> 
     </lvc:CartesianChart.AxisX> 
    </lvc:CartesianChart> 
</Grid> 

Und Code Hinter hier:

public MainWindow() 
{ 
    InitializeComponent(); 
    DrawGraphs(); 
} 
public void DrawGraphs() 
{ 
    LineSeries mySeries = new LineSeries 
    { 
     Values = new ChartValues<int> { 12, 23, 55, 1 } 
    }; 

    myChart.Series.Add(mySeries); 
} 

Zur Laufzeit 'myChart.Series.Add (mySeries)' wirft einen Ausnahmefehler Null-Referenz. Ich bin mir nicht sicher, wie ich das lösen soll.

Antwort

6

Da Sie die Serie direkt zum Diagramm hinzufügen, ohne MVVM zu verwenden, benötigen Sie nicht die gesamte Bindung in XAML. Sie können dies einfach tun:

XAML:

<Window x:Class="WpfApplication1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" 
    xmlns:local="clr-namespace:WpfApplication1" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <lvc:CartesianChart x:Name="myChart" /> 
</Grid> 

CS:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     DrawGraphs(); 
    } 
    public void DrawGraphs() 
    { 
     LineSeries mySeries = new LineSeries 
     { 
      Values = new ChartValues<int> { 12, 23, 55, 1 } 
     }; 

     myChart.Series.Add(mySeries); 
    } 
} 

enter image description here

Verwandte Themen