【发布时间】:2014-10-26 10:40:35
【问题描述】:
我正在尝试新的 Telerik Universal UI,但在绑定到 ObservableDictionary<string, int> 时遇到了这个异常。
System.ArgumentException:值类型 [KeyValuePair`2] 不支持动态 getter 在Telerik.Universal.Core.DynamicHelper.CreatePropertyValueGetter(Typetype, String propertyName) atTelerik.Universal.UI.Xaml.Controls.Chart.PropertyNameDataPointBinding.GetValue (Objectinstance) atTelerik.Universal.UI.Xaml.Controls.Chart.CategoricalSeriesDataSource.InitializeBinding(DataPointBindingEntrybinding) atTelerik.Universal.UI.Xaml.Controls.Chart.ChartSeriesDataSource.GenerateDataPoint(ObjeHere's 我正在使用的代码:
我知道我应该写信给他们的支持论坛,但当我发帖时它总是给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 中完成工作,而不是在页面中编写代码。
【问题讨论】:
标签: c# xaml telerik windows-phone-8.1 windows-rt