我正在尝试使用新的Telerik Universal UI,并在绑定到ObservableDictionary<string, int>
时遇到此异常。
System.ArgumentException:值类型[KeyValuePair`2] atTelerik.Universal.Core.DynamicHelper.CreatePropertyValueGetter(Typetype,String propertyName)atTelerik.Universal.UI.Xaml.Controls.Chart.PropertyNameDataPointBinding.GetValue不支持动态getter (Objectinstance)atTelerik.Universal.UI.Xaml.Controls.Chart.CategoricalSeriesDataSource.InitializeBinding(DataPointBindingEntrybinding)atTelerik.Universal.UI.Xaml.Controls.Chart.ChartSeriesDataSource.GenerateDataPoint(ObjeHere是我正在使用的代码:
我知道我应该写信给他们的支持论坛,但是当我发帖时它总是给Error 500
,而我又厌倦了重写我的帖子。
这是我的代码:
(视图模型)
public ObservableDictionary<string, int> MyDict { get; set; }
...
private void UpdateStats()
{
MyDict.Clear();
foreach (var item in Items)
{
var dayString = item.When.Date.ToLocalTime().ToString();
var dayKey = dayString.Split(' ')[0];
MyDict[dayKey] = (MyDict.ContainsKey(dayKey)) ? MyDict[dayKey] + 1 : 1;
}
}
(页)
<chart:RadCartesianChart x:Name="lineSeries"
PaletteName="DefaultLight"
ClipToBounds="False">
<chart:RadCartesianChart.VerticalAxis>
<chart:LinearAxis/>
</chart:RadCartesianChart.VerticalAxis>
<chart:RadCartesianChart.HorizontalAxis>
<chart:CategoricalAxis AutoGroup="True"
PlotMode="OnTicks"/>
</chart:RadCartesianChart.HorizontalAxis>
<chart:LineSeries ItemsSource="{Binding MyDict}">
<chart:LineSeries.CategoryBinding>
<chart:PropertyNameDataPointBinding PropertyName="Key"/>
</chart:LineSeries.CategoryBinding>
<chart:LineSeries.ValueBinding>
<chart:PropertyNameDataPointBinding PropertyName="Value"/>
</chart:LineSeries.ValueBinding>
</chart:LineSeries>
</chart:RadCartesianChart>
关于如何解决这个问题的任何想法? 我想在XAML中完成任务,而不是在页面中编写代码。
答案 0 :(得分:0)
;编辑;我的错误在晚上误读了错误
我不相信Telerik为他们的LineSeries控件提供了Xaml对字典绑定的支持,所以你可能只限于代码隐藏。遗憾!