DXCharts(リフレッシュ、更新、クリア)を新しいインスタンスに分解しますか?

私は、サードパーティのDevExpressライブラリでwpfとc#を使用しています。私はDXChartsに問題があります。私は、無駄にチャートをクリアまたは更新するために、いくつかの異なることを試しました。私は、Data-sourceの依存関係プロパティを持つData-Table(オンザフライで構築された)へのデータバインディングです。

新しいデータがバッキングプロパティに設定されている場合、チャートの依存プロパティはオーバーライドされていないようです。これは私にグラフの上に重なるポイントを与えます。以下の例で分かります。

1st Set of Data 1st set of Data Points

2nd Set of Data 2nd set of Data Points

Chartコントロールの新しいインスタンスを作成しようとしましたが、古いバインドされた依存関係のプロパティがまだ表示されていました。 DXchartのユーザーコントロールはコンテンツコントロールに組み込まれています。私はコンテンツプロパティを介してチャートをバインドします。これらはすべてDevExpressタブコントロールの下にネストされています。

以下はいくつかのコードです:

依存関係のプロパティ

public static readonly DependencyProperty DataTableChartProperty = DependencyProperty.Register
        ("DataTableChart", typeof(DataTable), typeof(MainWindowViewModel));

public static readonly DependencyProperty ContentElementProperty = DependencyProperty.Register
        ("ContentElement", typeof(FrameworkElement), typeof(MainWindowViewModel));

バッキングプロパティ

public DataTable DataTableChart
    {
        get { return (DataTable)this.GetValue(DataTableChartProperty); }
        set { this.SetValue(DataTableChartProperty, value); }

public FrameworkElement ContentElement
    {
        get { return (FrameworkElement)this.GetValue(ContentElementProperty); }
        set { this.SetValue(ContentElementProperty, value); }
    }

UserControl



    
        
            
                
                    
                        
                    
                
            
            
                
            
        
    

小さなメインウィンドウ部分


                    
                

誰かがアイデアを持っているなら、私は大いに感謝します。前もって感謝します!

0
私は、依存関係のプロパティとはまったく無関係だったという問題を理解しました。新しいデータテーブルに移行されていたデータセットに失効したデータが残っていました。私はちょうど新しいインスタンスを作成し、すべてがうまくいきます。
追加された 著者 rreeves,

2 答え

rreevesは正しいです。簡単な回避策は、私のDXChartControlを2番目のContentControlにラップすることでした。 ChartControlに直接バインドする代わりに、内部のContentControlがChartControlにバインディングを渡すようにします。そのように、コンテンツが変更されると、ContentControlはContentTemplateを介して新しいインスタンスを生成します。

    
        
         
    

次に、DataContextChangedでグラフを再構築することができます。

お役に立てれば!

2
追加された

私は古いチャートオブジェクトを削除し、新しいグラフオブジェクトを作成しました。これは、DevExpressごとのチャートの意図された動作です。

0
追加された