Tôi phải làm hai việc để làm việc với VS2010. Đầu tiên là databinding không được mang theo khi thiết lập DataContext cho ChartBase. Điều đó dẫn đến không có dữ liệu để vẽ. Để khắc phục điều đó tôi đã thay đổi ChartBase.OnSeriesSourceChanged sử dụng LoadDataTemplate đó tải các nội dung sau đó vòng qua và đặt tất cả các databindings:
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;
}
Thứ hai tôi đã phải thay đổi dự án để bao gồm các tập tin Generic.xaml đúng. Hãy chắc chắn sử dụng một trong De.TorstenMandelkow.MetroChart.WPF/Chủ đề. Nó cần phải bao gồm BaseChartStyle.
HTH
Nguồn
2013-03-28 15:52:19