如何将多个系列动态绑定到堆积柱形图

时间:2014-09-30 17:34:12

标签: wpf xaml mvvm data-binding charts

我正在使用DevExpress图表,但我认为在大多数图表工具中绑定应该是相同的。下面是一些使用WPF图表工具的示例代码。代码可能不是100%正确但我想大致了解我需要什么。 (我的问题列在后面)

<charting:Chart x:Name="MyChart"  Padding="10,10,10,10">
<charting:Chart.Series>
    <charting:StackedColumnSeries>
        <charting:SeriesDefinition Title="MyCollection1" ItemsSource="{Binding FirstCollection}" DependentValuePath="Value" IndependentValuePath="Key" />
        <charting:SeriesDefinition Title="MyCollection2" ItemsSource="{Binding SecondCollection}" DependentValuePath="Value" IndependentValuePath="Key" />
    </charting:StackedColumnSeries>
</charting:Chart.Series>

与以下内容绑定:

public IEnumerable FirstCollection
{
    get
    {
        List<KeyValuePair<string, long> kvp = new List<KeyValuePair<string, long>>();
        kvp.Add(new KeyValuePair<string, long>("2015", 200);
        kvp.Add(new KeyValuePair<string, long>("2016", 200);
        kvp.Add(new KeyValuePair<string, long>("2017", 200);
        return kvp;
    }
    set{
        NotifyPropertyChanged(FirstCollection);
    }

}
public IEnumerable SecondCollection
{
    get
    {
        List<KeyValuePair<string, long> kvp = new List<KeyValuePair<string, long>>();
        kvp.Add(new KeyValuePair<string, long>("2015", 200);
        kvp.Add(new KeyValuePair<string, long>("2016", 200);
        kvp.Add(new KeyValuePair<string, long>("2017", 200);
        return kvp;
    }
    set{
        NotifyPropertyChanged(SecondCollection);
    }

}

我需要的是创建这些集合的列表(FirstCollection到SomeNumberOfCollection)并且能够将这些多个系列绑定到堆积的柱形图而不单独执行每个系列,因为代码不应该知道要绑定的一组系列到。

如何将此动态集合列表绑定到XAML中的图表?我尝试将列表绑定到StackedColumnSeries而不是SeriesDefinition,但它不包含任何数据绑定属性(即DataSource / ItemsSource)

0 个答案:

没有答案