2017-03-06 17 views
2

私はそれにいくつかのチャートを持つ 'ダッシュボード'を持っています。それらの1つは一連の数を持つ円グラフです。LiveCharts(LVC)WPF - DataClickイベントからチャートを取得

LiveCharts

DataClick(object sender, ChartPoint chartPoint) 

senderタイプPieSliceであるDataClickイベントを有しています。どのようにしてそのイベントからSeriesCollectionにアクセスすることができますか?または、代わりにチャート名/ IDですか?

私が達成しようとしているのは、イベントを送信したアクセスチャートです。それはシリーズコレクションで、シリーズ/パイスライスのどのイベントがイベントを発生させたかを確認します。

答えて

2

まず、eventsを使用しないでください。commandsを使用してください。これがMVVMの方法です。

public SeriesCollection MySeries 
{ 
    get 
    { 
     var seriesCollection = new SeriesCollection(mapper); 

     seriesCollection.Add(new PieSeries() 
     { 
      Title = "My display name", 
      Values = new ChartValues<YourObjectHere>(new[] { anInstanceOfYourObjectHere }) 
     }); 

     return seriesCollection; 
    } 
} 

をして、コマンドの取り扱いについて:すなわち

<LiveCharts:PieChart DataClickCommand="{Binding DrillDownCommand}" Series="{Binding MySeries}" ...> 

MySeriesに結合

public ICommand DrillDownCommand 
{ 
    get 
    { 
     return new RelayCommand<ChartPoint>(this.OnDrillDownCommand); 
    } 
} 

private void OnDrillDownCommand(ChartPoint chartPoint) 
{ 
    // access the chartPoint.Instance (Cast it to YourObjectHere and access its properties) 
} 
1

あなたは、引数ではなく、送信者と協力する必要があります。 2番目のパラメータはChartPointです。このパラメータはSeriesViewです。だから、それはTitleだそれにアクセスして使用します。

private void Chart_OnDataClick(object sender, ChartPoint chartpoint) { 
     MessageBox.Show(chartpoint.SeriesView.Title); 
    } 

は、どのように私は、チャート名/ ID、あるいは、そのイベントからのSeriesCollectionにアクセスしたりすることができますか?

SeriesViewはSeriesCollection全体ではなく、Seriesをクリックしました。そしてあなたはそれの名前を持つことができます

関連する問題