[英]Binding Pie Chart with WPF Toolkit not showing points
我有一个定义如下的饼图:
<chartingToolkit:Chart DataContext="1,10 2,20 3,30 4,40"
HorizontalAlignment="Left" Margin="334,238,0,0"
Name="chart1" VerticalAlignment="Top" Height="177"
Width="218" BorderBrush="#00000000">
<chartingToolkit:PieSeries
ItemsSource="{Binding PieCollection}"
IndependentValueBinding="{Binding Path=Name}"
DependentValueBinding="{Binding Path=Share}" />
</chartingToolkit:Chart>
我的xaml在这里也被引用:
xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit">
所以那没问题。 我在ViewModel中声明了一个数据集:
private ObservableCollection<PiePoint> _pieCollection;
public ObservableCollection<PiePoint> PieCollection { get { return _pieCollection; } set { _pieCollection = value; OnPropertyChanged("PieCollection"); } }
PiePoint是我定义的对象,如下所示:
public class PiePoint
{
public string Name { get; set; }
public Int16 Share { get; set; }
}
当我在构造函数中启动ViewModel时,在此处添加了一些测试数据点,以查看是否可以在图表上获取一些数据:
PieCollection = new ObservableCollection<PiePoint>();
PieCollection.Add(new PiePoint { Name = "Mango", Share = 10 });
PieCollection.Add(new PiePoint { Name = "Banana", Share = 36 });
但是,图表上没有任何内容。 断点出现了,我看到了图表的背景,并且我知道项目源绑定到了正确的集合,但是我似乎无法使其正常工作。 有什么建议么?
这是我使用您的数据所得到的:
XAML:
<Grid>
<chartingToolkit:Chart Margin="0" Title="Chart Title">
<chartingToolkit:Chart.DataContext>
<local:PieCollection/>
</chartingToolkit:Chart.DataContext>
<chartingToolkit:PieSeries ItemsSource="{Binding Mode=OneWay}" DependentValuePath="Share" IndependentValuePath="Name" DataContext="{Binding Mode=OneWay}" >
</chartingToolkit:PieSeries>
</chartingToolkit:Chart>
</Grid>
结果:
请注意,我正在XAML中创建PieCollection
,因此它与图表的DataContext
相关联。 在您的情况下,您将在后面的代码中创建PieCollection
,因此您可能需要执行以下操作
chart.DataContext = PieCollection
编辑 :动态创建PieCollection
:
public partial class MainWindow : Window
{
PieCollection pieCollection1;
public MainWindow()
{
InitializeComponent();
pieCollection1 = new PieCollection();
pieCollection1.Add(new PiePoint { Name = "Mango", Share = 10 });
pieCollection1.Add(new PiePoint { Name = "Banana", Share = 36 });
pieCollection1.Add(new PiePoint { Name = "Grapes", Share = 15 });
pieCollection1.Add(new PiePoint { Name = "Apple", Share = 20 });
Chart1.DataContext = pieCollection1;
}
}
结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.