wpf图表列系列数据绑定问题

时间:2009-12-12 20:16:02

标签: wpf data-binding wpftoolkit

我正在尝试使用wpf工具包中的ColumnSeries构建图表,但我似乎遇到了数据绑定问题。这是xaml:

<Grid>
    <chartingToolkit:ColumnSeries Height="18" HorizontalAlignment="Left" Margin="188,169,0,0" Name="columnSeries1" VerticalAlignment="Top" Width="18" IndependentValueBinding="{Binding Path=Date}" DependentValueBinding="{Binding Path=Value}" />
</Grid>

在后面的代码中,我正在调用存储过程并将结果放在DataTable中,如下所示:

string connString = ConfigurationManager.ConnectionStrings["string"].ConnectionString;
            using (SqlConnection cn = new SqlConnection(connString))
            {
                DataTable dt = new DataTable("T1");
                cn.Open();
                SqlCommand cmd = new SqlCommand("T1_sp", cn);
                cmd.CommandType = CommandType.StoredProcedure;  
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);
                columnSeries1.ItemsSource = dt.DefaultView;
                cn.Close();
            }

没有生成错误,但我也没有得到柱形图。如果我使用相同的命令并将其放入DataGrid,它可以正常工作。我需要做什么才能将其纳入我的柱形图?

如果有帮助,数据表中返回的数据如下所示:

Date, type, Value  
2009-10-09, abc, 12.23  
2009-10-10, def, 13.35  

日期应该是独立的值绑定,值应该是依赖值绑定。

2 个答案:

答案 0 :(得分:2)

这是我的工作代码,为了清晰起见,清理了一点。也许这会有所帮助。

XAML

<charting:Chart Grid.Column="1" Grid.Row="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"  Background="Transparent" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
        <charting:Chart.Series>
            <charting:ColumnSeries x:Name="TrendChart" ItemsSource="{Binding Trend1}" IndependentValueBinding="{Binding Date}" DependentValueBinding="{Binding Spread}">
            </charting:ColumnSeries>
        </charting:Chart.Series>            
    </charting:Chart>

背后的代码

string connString = ConfigurationManager.ConnectionStrings["string"].ConnectionString;
                using (SqlConnection cn = new SqlConnection(connString))
                {
                    DataTable dt = new DataTable("Trend1");
                    cn.Open();
                    SqlCommand cmd = new SqlCommand("Trend1_sp", cn);                        cmd.CommandType = CommandType.StoredProcedure;
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(dt);
                    TrendChart.ItemsSource = dt.DefaultView;
                }

希望有所帮助!

答案 1 :(得分:0)

我有一个非常类似的问题,我有一点解决方案,它可能适合你。

WPF Toolkit Charting and IndependentValueBinding, IndependentValuePath