mas*_*_99 5 .net c# wpf charts xaml
我正在寻找一个好的图表控件,并找到了" 适用于Windows 8,WPF,Silverlight的现代UI(Metro)图表 "这个控件看起来非常好,但我需要这个用于Visual Studio 2010和4.0.原始源代码是用Visual Studio 2012和4.5编写的,所以我尝试用类文件创建一个新项目.一切都很好.我可以编译类并通过调试.但结果是一个空窗口.我不知道错误在哪里.这些文件没有变化,这就是我发布一些图片的原因:
工作样本

复制4.0样本

工作样本Snoop

复制4.0样本Snoop

小智 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;
}
Run Code Online (Sandbox Code Playgroud)
其次,我必须更改项目以包含正确的 Generic.xaml 文件。请务必使用 De.TorstenMandelkow.MetroChart.WPF/Themes 下的一个。它需要包含 BaseChartStyle。
华泰