现代UI(Metro)图表适用于Windows 8、WPF和Silverlight的.NET 4.0。

5
我正在寻找一个好的图表控件,并找到了 "Modern UI (Metro) Charts for Windows 8, WPF, Silverlight"。这个控件看起来非常不错,但是我需要它适用于Visual Studio 2010和4.0版本。原始源代码是使用Visual Studio 2012和4.5编写的,因此我尝试使用类文件创建一个新项目。一切都很顺利。我可以编译类并进行调试。但结果是一个空窗口。我不知道错误在哪里。文件没有改变,这就是为什么我发布了一些图片的原因:
2个回答

2

0
我必须做两件事才能使它与VS2010配合使用。首先,当为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。

希望对你有所帮助


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接