使用DataTemplateSelector动态更改WPF Toolkit图表类型

时间:2011-11-03 08:41:00

标签: wpf datatemplate wpftoolkit datatemplateselector

我有两个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>

&lt; - 饼图 - &gt;

    <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()方法来完成此操作?

1 个答案:

答案 0 :(得分:0)

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

此致

    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);
    }