首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态创建StackedBarSeries图表Silverlight的系列

动态创建StackedBarSeries图表Silverlight的系列
EN

Stack Overflow用户
提问于 2014-04-15 05:54:29
回答 1查看 185关注 0票数 0

我遇到了这个问题,我想不出一个简单的方法来解决它。

这是我的XAML

代码语言:javascript
复制
    <toolkit:Chart Height="250" x:Name="ProductSalesChart" >
        <toolkit:Chart.Series>
            <toolkit:StackedBarSeries>
                <toolkit:SeriesDefinition Title="Series1" ItemsSource="{Binding ProductA}"  IndependentValueBinding="{Binding Milestone}" DependentValueBinding="{Binding Sales}">
                </toolkit:SeriesDefinition>
                <toolkit:SeriesDefinition Title="Series2" ItemsSource="{Binding ProductB}"   IndependentValueBinding="{Binding Milestone}" DependentValueBinding="{Binding Sales}">
                </toolkit:SeriesDefinition>

                <toolkit:StackedBarSeries.IndependentAxis>
                    <toolkit:CategoryAxis Orientation="X"></toolkit:CategoryAxis>
                </toolkit:StackedBarSeries.IndependentAxis>

                <toolkit:StackedBarSeries.DependentAxis>
                    <toolkit:LinearAxis Orientation="Y"  ShowGridLines="True"></toolkit:LinearAxis>
                </toolkit:StackedBarSeries.DependentAxis>

            </toolkit:StackedBarSeries>
        </toolkit:Chart.Series>
    </toolkit:Chart>

所以基本上,它是一个堆叠的图表,在X轴上有里程碑,在Y轴上有每个产品的销售数量。我得到了这个工作,除了我检索的产品来自数据库,它可以被改变。在上面的图表中,我将其硬编码为两个(Series1和Series2)。有没有办法把这个系列绑定到一个View模型对象上,这样它就可以自动升降了?

根据我的调查结果,有以下几种选择:

a)从视图模型访问图表控件,并以编程方式添加系列。但这不会破坏MVVM吗。另外,我如何从视图模型中获取对图表控件的引用?有什么API可以解决这个问题吗?使用事件触发器不起作用。(至少对于图表OnLoaded)

b)创建自己的Chart类,继承基本Chart类。这有多容易?有好的样品吗?

还有其他想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-15 16:15:22

我在尝试使用ToolKit图表时遇到了真正的问题,特别是关于绑定和如何以MVVM的方式使用的问题。所有示例都是XAML定义的序列(就像您的一样),或者绑定图表而不是数据的相当琐碎的方面。

我没有你所有的答案,因为我有同样的问题,但也许可以帮助我,因为我设法让一些东西以数据驱动的方式工作。

我使用Graphite Charts http://www.graphitecharts.com/主要是因为它们有不错的文档,所以我实际上可以开始工作,而不需要尝试整理每个类的用途和使用方法的基础知识。

(a)我在视图模型中执行所有数据访问,以响应视图中的命令。视图上的其他操作将由视图的代码隐藏处理,正是这些操作将从视图模型公开的数据创建新的系列集合、系列和数据点。例如,我从未找到将序列集合绑定到VM属性的方法,但在代码隐藏中构建序列工作得很好。事实上,它可能是一种更清晰的分离,因为序列(和数据点)是非常多的视图对象。

(b)我没有尝试实现我自己的。尝试石墨(或坚持使用silverlight ),并尝试使用VM获取数据但在视图中构建图表的方法。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23071132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档