如何在可观察集合中绑定到列表中的元素?

时间:2012-11-21 16:31:46

标签: wpf data-binding

我有以下问题:

我有一个ObservableCollection作为我的模型,如下所示:

public class HistoryViewModel : ViewModelBase
{
    private ObservableCollection<List<KeyValuePair<DateTime, float>>> _valuePairs;
    public ObservableCollection<List<KeyValuePair<DateTime, float>>> ValuePairs
    {
        get
        {
            return this._valuePairs;
        }
        set
        {
            this._valuePairs= (ObservableCollection<List<KeyValuePair<DateTime, float>>>)value;
            OnPropertyChanged("ValuePairs");
        }
    }
}

正如您所看到的,此集合由列表组成,我需要绑定到列表中的KeyValuePair。但我不知道怎么做。问题是我不知道集合中和列表中有多少项目。

我现在的尝试看起来像这样:

<ItemsControl ItemsSource="{Binding Path=ValuePairs}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel></StackPanel>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <charting:Chart Width="400" Height="250">
                <charting:Chart.Series>
                    <charting:LineSeries Title="Monthly Count" 
                                            IndependentValueBinding="{Binding //, Path=Key}"
                                            DependentValueBinding="{Binding //, Path=Value}">
                    </charting:LineSeries>
                </charting:Chart.Series>
            </charting:Chart>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

显示集合中的元素数量,但图表不显示任何值。 有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

将ItemsSource =“{Binding}”添加到图表中,它应该修复它