Devexpress DXCharts (vernieuwen, bijwerken, wissen) nieuwe instantie?

Ik gebruik wpf en C# met de DevExpress-bibliotheken van derden. Ik heb een probleem met DXCharts. Ik heb een aantal verschillende dingen geprobeerd om het diagram zonder resultaat te wissen of bij te werken. Ik ben gegevensbindend aan een gegevenstabel (on the fly gebouwd) met een dependencyseigenschap voor de gegevensbron.

De afhankelijkheidseigenschappen voor de grafiek lijken niet te worden onderdrukt wanneer nieuwe gegevens worden ingesteld op de eigenschap backing. Dit geeft me overlappende punten op de kaart. Zoals je in de onderstaande voorbeelden kunt zien.

1st Set of Data 1st set of Data Points

2nd Set of Data 2nd set of Data Points

Ik heb ook geprobeerd nieuwe instanties van het Chart-besturingselement te maken en deze laat nog steeds de oude afhankelijke eigenschappen van de koppeling zien. De DXchart usercontrol is ingebed in een Content Control. Ik bind de grafiek via een inhoudseigenschap. Dit alles is genest onder een DevExpress-tabbesturingselement.

Hier is een deel van de code hieronder:

Afhankelijkheidseigenschappen

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

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

Backing-eigenschappen

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



    
        
            
                
                    
                        
                    
                
            
            
                
            
        
    

Klein hoofdvensterdeel


                    
                

Als iemand ideeën heeft, zou ik het zeer op prijs stellen. Bij voorbaat dank!

0
Ik ontdekte het probleem dat het totaal niets te maken had met de afhankelijkheidseigenschappen. Ik had oude gegevens blijven plakken in een dataset die werd gemigreerd naar de nieuwe datatabel. Ik heb zojuist een nieuwe instantie gemaakt en alles is goed.
toegevoegd de auteur rreeves, de bron

2 antwoord

rreeves is correct. Een eenvoudige oplossing voor mij was om mijn DXChartControl in een 2e ContentControl te plaatsen. In plaats van rechtstreeks aan de ChartControl te binden, moet een innerlijke ContentControl de binding aan de ChartControl overhandigen, zodat op het moment dat de inhoud wordt gewijzigd, de ContentControl een nieuw exemplaar genereert via de ContentTemplate.

    
        
         
    

Vervolgens kunt u de grafiek opnieuw opbouwen in de DataContextChanged.

Ik hoop dat dit helpt!

2
toegevoegd

Uiteindelijk heb ik het oude diagramobject verwijderd en een nieuw object gemaakt. Dit is het beoogde gedrag van de grafieken per DevExpress.

0
toegevoegd