2012-12-08 3 views
2

내 새로운 Win8 C#/XAML 스토어 앱에서 SyncFusion WinRT Studio의 파이 차트를 사용하려고하는데 차트에 데이터를 설정하는 방법을 알 수 없습니다. 내 페이지에 차트가 있으며 데이터를 표시하도록 설정할 수있는 모든 것을 시도했지만 작동하도록 설정할 수는 없습니다. 샘플 앱은 페이지에 코드가 없기 때문에별로 도움이되지 않습니다. 다른 점이 무엇인지 알 수 없습니다. 아래 차트는 샘플에서 바로 복사되지만 내 응용 프로그램에서는 작동하지 않습니다. 누구나 WinRT 앱에서 SyncFusion 차트를 사용하는 샘플이 있습니까? XAML에서syncfusion winrt chart

차트 : 코드 뒤에 LoadState에서 함수를 호출

 <Grid Margin="30,15,30,30" x:Name="ChartGrid"> 
     <Grid.Resources> 
      <local:Labelconvertor x:Key="labelconverter"/> 
      <Style TargetType="Line" x:Key="lineStyle"> 
      <Setter Property="StrokeThickness" Value="0"/> 
      </Style> 
      <DataTemplate x:Key="labelTemplate"> 
      <TextBlock Margin="10,0,0,0" Text="{Binding Converter={StaticResource labelconverter}}" FontSize="26" FontFamily="Segoe UI" FontWeight="Light" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Top" Opacity="0.5"></TextBlock> 
      </DataTemplate> 
      <DataTemplate x:Key="legend"> 
      <StackPanel Orientation="Horizontal"> 
       <Grid Margin="10,0,0,0"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition/> 
        <ColumnDefinition/> 
       </Grid.ColumnDefinitions> 
       <Rectangle Width="15" Height="15" Fill="{Binding Interior}"></Rectangle> 
       <TextBlock Margin="10,5,5,0" Grid.Column="1" Text="{Binding Item.Expense}"></TextBlock> 
       </Grid> 
      </StackPanel> 
      </DataTemplate> 
     </Grid.Resources> 
     <Grid.DataContext> 
      <local:PieChartViewModel/> 
     </Grid.DataContext> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"></RowDefinition> 
      <RowDefinition></RowDefinition> 
     </Grid.RowDefinitions> 
     <StackPanel Margin="0,0,0,20"> 
     </StackPanel> 
     <chart:Chart x:Name="ScatterChart" AreaBorderThickness="0" HorizontalAlignment="Center" Grid.RowSpan="2" Visibility="Visible"> 
      <chart:Chart.Header> 
      <TextBlock FontSize="20" FontFamily="Segoe UI" Margin="0,20,0,10">Agriculture Expenses Comparison</TextBlock> 
      </chart:Chart.Header> 
      <chart:Chart.PrimaryAxis> 
      <chart:ChartAxis></chart:ChartAxis> 
      </chart:Chart.PrimaryAxis> 
      <chart:Chart.SecondaryAxis> 
      <chart:ChartAxis></chart:ChartAxis> 
      </chart:Chart.SecondaryAxis> 
      <chart:Chart.Legend> 
      <chart:ChartLegend CornerRadius="0" ItemTemplate="{StaticResource legend}" CheckBoxVisibility="Visible" BorderThickness="1"> 
      </chart:ChartLegend> 
      </chart:Chart.Legend> 
      <chart:PieSeries ItemsSource="{Binding Expenditure}" XBindingPath="Expense" x:Name="pieSeries" ExplodeAll="{Binding Path=IsChecked,ElementName=chkExplode}" ExplodedRadius="{Binding Path=Value,ElementName=slRadius}" Palette="Metro" Label="Expenditures" YBindingPath="Amount"> 
      <chart:PieSeries.AdornmentsInfo> 
       <chart:ChartAdornmentInfo AdornmentsPosition="Bottom" HorizontalAlignment="Center" VerticalAlignment="Center" ConnectorLineStyle="{StaticResource lineStyle}" ShowConnectorLine="True" ConnectorHeight="30" ShowLabel="True" LabelTemplate="{StaticResource labelTemplate}" SegmentLabelContent="YValue"> 
       </chart:ChartAdornmentInfo> 
      </chart:PieSeries.AdornmentsInfo> 
      </chart:PieSeries> 
     </chart:Chart> 
     </Grid> 
    </StackPanel> 
    </Grid> 

:

PieChartViewModel pvm = new PieChartViewModel(); 
    this.DefaultViewModel["PieChartViewModel"] = pvm; 
    this.DefaultViewModel["DataContext"] = pvm; 
    this.DefaultViewModel["Items"] = pvm; 
    this.DefaultViewModel["DefaultViewModel"] = pvm; 
    this.ScatterChart.DataContext = pvm; 
    this.ChartGrid.DataContext = pvm; 

개체 (... 나는이 모든 옵션을 시도하고 그들 중 누구도 작동하지) 정의 :

public class PieChartViewModel 
{ 
    public PieChartViewModel() 
    { 
    this.Expenditure = new List<CompanyExpense>(); 
    Expenditure.Add(new CompanyExpense() { Expense = "Seeds", Amount = 20d }); 
    Expenditure.Add(new CompanyExpense() { Expense = "Fertilizers", Amount = 23d }); 
    Expenditure.Add(new CompanyExpense() { Expense = "Insurance", Amount = 12d }); 
    Expenditure.Add(new CompanyExpense() { Expense = "Labor", Amount = 28d }); 
    Expenditure.Add(new CompanyExpense() { Expense = "Warehousing", Amount = 10d }); 
    Expenditure.Add(new CompanyExpense() { Expense = "Taxes", Amount = 10d }); 
    Expenditure.Add(new CompanyExpense() { Expense = "Truck", Amount = 10d }); 
    } 
    public IList<CompanyExpense> Expenditure 
    { 
    get; 
    set; 
    } 
} 
public class CompanyExpense 
{ 
    public string Expense { get; set; } 
    public double Amount { get; set; } 
} 

답변

1

문제없이 동일한 데이터를 사용하여 파이 차트를 채울 수있었습니다. 여기 PieChartDemo

에서 샘플을 찾아주세요은 원형 차트 구성하는 방법에 대해 설명 문서입니다 : 생성을 PieSeries에 대한 데이터를 제공하기 위해 사용되는 세 가지 API를 다음 PieChartHelp

  1. ItemsSource - 당신이 할 수있는 이 속성을 사용하여 데이터 소스를 제공하십시오. 모든 IEnumerable은 데이터 소스로 제공 될 수 있습니다.
  2. XBindingPath - 원본 개체의 범주 데이터 경로를 제공하는 데 사용됩니다.
  3. YBindingPath - 소스 개체에 숫자 데이터의 경로를 제공하는 데 사용됩니다.