Bonsoir,
J'ai besoin d'afficher des données sur des graphiques avec le WPF Toolkit.
Je suis donc tombé sur ce tutoriel. On y voit la création des graphiques à l'initialisation de l'application.
Seulement voila, je souhaite faire en sorte que les données soient mises à jour suite à une interaction utilisateur. (Plus précisément, les données utilisées pour le graphique sont chargées depuis un fichier différent en fonction de la saisie utilisateur).
J'ai donc fait un essai, que voici :
XAML (j'ai uniquement gardé le LineChart et ajouté button1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <Window x:Class="WpfToolkitChart.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="462" Width="737" xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"> <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Margin="0,-28,0,28"> <Grid Height="921"> <chartingToolkit:Chart Name="lineChart" Title="Line Series Demo" VerticalAlignment="Top" Margin="24,21,26,0" Height="295" > <chartingToolkit:LineSeries DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding}" IsSelectionEnabled="True" Title="Serie"/> </chartingToolkit:Chart> <Button Content="Serie + 5" Height="54" HorizontalAlignment="Left" Margin="147,351,0,0" Name="button1" VerticalAlignment="Top" Width="159" Click="button1_Click" /> </Grid> </ScrollViewer> </Window>Cette version marche tout à fait, mais j'aimerais savoir s'il n'existe pas une façon de faire du Data Binding dans le code XAML et non dans le côté C# (qui passe par un gestionnaire d'évènements). Qu'en est-il ? Je vous en remercie par avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 namespace WpfToolkitChart { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); showColumnChart(); } private void showColumnChart() { List<KeyValuePair<string, int>> valueList = new List<KeyValuePair<string, int>>(); valueList.Add(new KeyValuePair<string, int>("Developer", 100)); valueList.Add(new KeyValuePair<string, int>("Misc", 20)); valueList.Add(new KeyValuePair<string, int>("Tester", 50)); valueList.Add(new KeyValuePair<string, int>("QA", 30)); valueList.Add(new KeyValuePair<string, int>("Project Manager", 40)); lineChart.DataContext = valueList; } private void button1_Click(object sender, RoutedEventArgs e) { List<KeyValuePair<string, int>> list = new List<KeyValuePair<string, int>>(); List<KeyValuePair<string, int>> serie = (List<KeyValuePair<string, int>>) lineChart.DataContext; foreach ( KeyValuePair<string, int> pair in serie ) { list.Add(new KeyValuePair<string, int> (pair.Key, pair.Value + 5)); // simulation d'un changement de données } lineChart.DataContext = list; } } }
PS : Je débute avec WPF mais pas C#
Partager