我的视图模型上有一个属性,它返回一些硬编码的测试数据:
public ObservableCollection<Item> Items
{
get
{
return new ObservableCollection<Item> {
new Item { Key = 0, Count = 5 },
new Item { Key = 1, Count = 3 },
new Item { Key = 2, Count = 2 },
new Item { Key = 3, Count = 7 }
}
}
}
我的图表在视图中定义为:
<toolkit:WrapPanel>
<toolkit:Chart>
<toolkit:LineSeries ItemsSource="{Binding Items}" IndependentAxis="{Binding Key}" DependentValueBinding="{Binding Count}"/>
</toolkit:Chart>
</toolkit:WrapPanel>
使用该代码,我得到以下异常:
System.Windows.Data Error: BindingExpression path error: 'Key' property not found on 'Test.MyViewModel' 'Test.MyViewModel' (HashCode=50157845). BindingExpression: Path='Key' DataItem='Test.MyViewModel' (HashCode=50157845); target element is 'System.Windows.Controls.DataVisualization.Charting.LineSeries' (Name=''); target property is 'IndependentAxis' (type 'System.Windows.Controls.DataVisualization.Charting.IAxis').
如果我将图表的DataContext
绑定到Items
,则不会抛出任何异常,但图表显示没有数据。
编辑:不,它抱怨无法在集合上绑定Key和Count。
我看到的所有示例都将这些图表设置为这样,那么为什么我尝试绑定到视图模型?或者更确切地说,为什么它似乎适用于其他任何人?
答案 0 :(得分:1)
您可能需要使用IndependentValueBinding="{Binding Key}"
。
IndependentAxis
指定您要使用的轴类型 - 分类,日期/时间等,而不是获取轴数据的位置:
<charting:LineSeries.IndependentAxis>
<charting:CategoryAxis Orientation="X"/>
</charting:LineSeries.IndependentAxis>