VS2010에서 작동하려면 두 가지 작업을 수행해야했습니다. 첫 번째는 ChartBase 용 DataContext를 설정할 때 데이터 바인딩이 수행되지 않고 있다는 것입니다. 그 결과 플롯 할 데이터가 없었습니다. 내가 가진
private void OnSeriesSourceChanged(IEnumerable oldValue, IEnumerable newValue)
{
this.Series.Clear();
if (newValue != null)
{
foreach (object item in newValue)
{
if (SeriesTemplate != null)
{
ChartSeries series = LoadDataTemplate<ChartSeries>(SeriesTemplate, item);
if (series != null)
{
// set data context
series.DataContext = item;
this.Series.Add(series);
}
}
}
}
UpdateGroupedSeries();
}
private static T LoadDataTemplate<T>(DataTemplate template, object dataContext)
where T : FrameworkElement
{
DependencyObject element = template.LoadContent();
T view = element as T;
view.DataContext = dataContext;
var enumerator = element.GetLocalValueEnumerator();
while (enumerator.MoveNext())
{
var bind = enumerator.Current;
if (bind.Value is BindingExpression)
{
view.SetBinding(bind.Property, ((BindingExpression)bind.Value).ParentBinding);
}
}
return view;
}
둘째가 올바른 generic.xaml을 파일을 포함하여 프로젝트를 변경 : 내가 통해 루프 후 내용을로드하고 모든 데이터 바인딩을 설정 LoadDataTemplate를 사용하는 ChartBase.OnSeriesSourceChanged를 변경하는 것이 해결하려면. De.TorstenMandelkow.MetroChart.WPF/Themes 아래에있는 것을 사용하십시오. BaseChartStyle을 포함해야합니다.
HTH