2017-02-04 1 views
1

Diese Frage ist nichts Neues: Diagramme mit LinearAxis verwenden nur ganze Zahlen. Viele Antworten schlagen vor, Intervall zu verwenden, aber wenn ich Min Wert = 1 und Max Wert = 100 habe, mit Intervall = 1 wird die Achse 100 Nummern haben, zu viele Zahlen. Was ich will, ist die automatische Intervallberechnung von LinearAxis mit ein wenig Modifikation. So, hier ist die Lösung von Andrew Barrett gefunden:Intervall in WinRT Xaml Diagramm mit UWP

Nachdem ich meine Beispielanwendung mit dem Code angewandt:

class Report 
{ 
    public string months { get; set; } 
    public int countlent { get; set; } 
} 

public MainPage() 
{ 
    this.InitializeComponent(); 
    LoadChartContents(); 
} 

private void LoadChartContents() 
{ 
    List<Report> lstSource = new List<Report>(); 
    lstSource.Add(new Report() { months = "1", countlent = 10 }); 
    lstSource.Add(new Report() { months = "2", countlent = 15 }); 
    lstSource.Add(new Report() { months = "3", countlent = 20 }); 
    lstSource.Add(new Report() { months = "4", countlent = 10 }); 
    lstSource.Add(new Report() { months = "5", countlent = 13 }); 
    lstSource.Add(new Report() { months = "6", countlent = 18 }); 
    lstSource.Add(new Report() { months = "7", countlent = 33 }); 
    lstSource.Add(new Report() { months = "8", countlent = 41 }); 
    lstSource.Add(new Report() { months = "9", countlent = 31 }); 
    lstSource.Add(new Report() { months = "10", countlent = 21 }); 
    lstSource.Add(new Report() { months = "11", countlent = 12 }); 
    lstSource.Add(new Report() { months = "12", countlent = 37 }); 
    (LineChart.Series[0] as LineSeries).DependentRangeAxis = new LineSeriesAxis(); 
    (LineChart.Series[0] as LineSeries).ItemsSource = lstSource; 
} 

Xaml Seite:

<Chart:Chart x:Name="LineChart" HorizontalAlignment="Center" Margin="5" Width="500"> 
    <Chart:LineSeries Title="Chart Name" IndependentValuePath="months" DependentValuePath="countlent" /> 
</Chart:Chart> 

Jedesmal, wenn ich laufen oder debuggen die App stoppe und zeige die Seite "App.gics" unter

#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION 
     UnhandledException += (sender, e) => 
     { 
      if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break(); 
     }; 
#endif 

Benutze ich seinen Code richtig? Ich verwende UWP und WinRTXamlToolkit.Controls.DataVisualization.Charting Toolkit.

+0

Was ist die Ausnahme e? –

+0

Nichts zeigte. – Dant

+0

Können Sie Ausnahmen der ersten Chance aktivieren? –

Antwort

1

Die Art, wie Sie Ihre Achse in Code-Behind zuweisen, ist ein wenig "riskant". Versuchen Sie stattdessen:

XAML:

<Charting:Chart x:Name="LineChart" HorizontalAlignment="Center" Margin="5" Width="500"> 
     <Charting:Chart.Axes> 
      <local:LineSeriesAxis Orientation="Y"></local:LineSeriesAxis> 
     </Charting:Chart.Axes> 
     <Charting:LineSeries Title="Chart Name" 
          IndependentValuePath="months" 
          DependentValuePath="countlent" 
          ItemsSource="{Binding}" /> 
    </Charting:Chart> 

CS:

private void LoadChartContents() 
    { 
     List<Report> lstSource = new List<Report>(); 
     lstSource.Add(new Report() { months = "1", countlent = 10 }); 
     lstSource.Add(new Report() { months = "2", countlent = 15 }); 
     lstSource.Add(new Report() { months = "3", countlent = 20 }); 
     lstSource.Add(new Report() { months = "4", countlent = 10 }); 
     lstSource.Add(new Report() { months = "5", countlent = 13 }); 
     lstSource.Add(new Report() { months = "6", countlent = 18 }); 
     lstSource.Add(new Report() { months = "7", countlent = 33 }); 
     lstSource.Add(new Report() { months = "8", countlent = 41 }); 
     lstSource.Add(new Report() { months = "9", countlent = 31 }); 
     lstSource.Add(new Report() { months = "10", countlent = 21 }); 
     lstSource.Add(new Report() { months = "11", countlent = 12 }); 
     lstSource.Add(new Report() { months = "12", countlent = 37 }); 

     DataContext = lstSource; 
    } 

enter image description here

+0

Danke, das hat funktioniert. – Dant

Verwandte Themen