5

優れたチャート コントロールを探していて、" Modern UI (Metro) Charts for Windows 8, WPF, Silverlight " を見つけました。元のソースは Visual Studio 2012 und 4.5 で書かれているので、クラス ファイルで新しいプロジェクトを作成しようとしました。すべてがうまく機能します。クラスをコンパイルしてデバッグできます。しかし、結果は空のウィンドウです。どこが間違っているのかわかりません。ファイルは変更されていないため、いくつかの写真を投稿します。

作業サンプル 作業サンプル

4.0 サンプルをコピー 4.0 サンプルをコピー

ワーキングサンプルスヌープ ワーキングサンプルスヌープ

コピーされた 4.0 サンプル スヌープ コピーされた 4.0 サンプル スヌープ

4

2 に答える 2

2

新しい地下鉄チャートは本当に良いです! あなたが言及したように、彼らはWindows 8と.net 4.5をターゲットにしていますが、VS 2010でも.net 4.0を使用してWindows 7で実行することができます. 開始方法に関する簡単なチュートリアルが必要な場合は、http://thusithamabotuwana.wordpress.com/2014/02/02/charting-with-wpf/をご覧ください。

于 2014-02-03T19:32:57.927 に答える
0

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

于 2013-03-28T15:52:19.357 に答える