0

我有两个 WPF 工具包图表(列和饼图)。

<-- 柱形图 -->

<DVC:Chart Name="mcChartPie" Title="{Binding ChartName}"       
DataContext="{Binding SelectedChart}">
<DVC:Chart.Series>
<DVC:PieSeries ItemsSource="{Binding Columns}" Title="Some Chart"
IndependentValueBinding="{Binding Path=Name}" DependentValueBinding="{Binding 
Path=Value}"></DVC:PieSeries>
</DVC:Chart.Series>
</DVC:Chart>

<-- 饼图-->

    <DVC:Chart Name="mcChart" Title="{Binding ChartName}"    
DataContext="{Binding SelectedChart}" Style="{DynamicResource Info>
<DVC:Chart.Series>
<DVC:ColumnSeries ItemsSource="{Binding Columns}" Title="Some Chart"  
IndependentValueBinding="{Binding Path=Name}" DependentValueBinding="{Binding 
Path=Value}" Background="Black" AnimationSequence="FirstToLast" ></DVC:ColumnSeries>
</DVC:Chart.Series>
</DVC:Chart>

有一个组合框允许用户选择图表类型。当用户选择“柱形图类型”时,柱形图模板应该是可见的,当用户选择“饼图类型”时,饼图模板应该是可见的。如何通过覆盖 DataTemplateSelector 类中的 SelectTemplate() 方法来做到这一点?

4

1 回答 1

0

尝试这样的事情,只是一个简单的方法,它创建一个新的系列(饼图、条形、柱形、线条、区域),然后在清除图表控件上加载的上一个系列后将系列添加到图表控件中。

问候

    void loadPieSerie()
    {
        System.Windows.Controls.DataVisualization.Charting.PieSeries pieSerie = new System.Windows.Controls.DataVisualization.Charting.PieSeries();
        chartControl.Series.Clear();

        List<KeyValuePair<string, int>> valueList= new List<KeyValuePair<string, int>>();
        valueList.Add(new KeyValuePair<string, int>("Dogs", 50));
        valueList.Add(new KeyValuePair<string, int>("Cats", 20));
        valueList.Add(new KeyValuePair<string, int>("Dinosaurs", 30));
        pieSerie.DependentValuePath = "Value";
        pieSerie.IndependentValuePath = "Key";
        pieSerie.ItemsSource = values;
        chartControl.Series.Add(pieSerie);
    }
于 2013-01-26T03:02:50.573 回答