2011-11-03 1 views
0

두 개의 WPF 툴킷 차트 (열 및 원형)가 있습니다.DataTemplateSelector를 사용하여 WPF Toolkit 차트 유형을 동적으로 변경하십시오.

< - 세로 막 대형 차트 ->

<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() 메서드를 재정 의하여이 작업을 수행 할 수 있습니까?

+0

단 하나의 방법은 2 datatemplates으로이 개 된 UserControls를 작성하고이를 전환하는 것입니다. 'DataTemplateSelector' 클래스를 사용하는 방법이 질문에 대한 대답은 다음과 같습니다 : http://stackoverflow.com/questions/5309099/changing-the-view-for-a-viewmodel/5310213#5310213. – vorrtex

+0

고마워요! 이것은 정말 도움이됩니다! – user1020800

+0

시리즈 유형과 일치하는 코드를 작성할 수 있습니까? –

답변

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); 
    } 
관련 문제