VS2010 で動作させるには、2 つのことを行う必要がありました。1 つ目は、ChartBase の DataContext を設定するときに、データバインディングが行われていないことです。その結果、プロットするデータがありませんでした。これを修正するには、ChartBase.OnSeriesSourceChanged を変更して LoadDataTemplate を使用し、コンテンツをロードしてループし、すべてのデータバインディングを設定します。
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 ファイルを含むようにプロジェクトを変更する必要がありました。De.TorstenMandelkow.MetroChart.WPF/Themes の下にあるものを必ず使用してください。BaseChartStyle を含める必要があります。
HTH