值类型[KeyValuePair`2]不支持动态getter

时间:2014-10-26 10:40:36

标签: c# xaml telerik windows-phone-8.1 windows-rt

我正在尝试使用新的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中完成任务,而不是在页面中编写代码。

1 个答案:

答案 0 :(得分:0)

;编辑;我的错误在晚上误读了错误

我不相信Telerik为他们的LineSeries控件提供了Xaml对字典绑定的支持,所以你可能只限于代码隐藏。遗憾!