2011-05-16 6 views
0

ここでは、辞書項目をChartコントロールにバインドするコードを示します。私は、次のエラーを取得しておいてください。WPFツールキットに辞書をバインドする図表

「インデックスが範囲外でした負でないコレクションのサイズよりも小さくなければなりません。パラメータ名:インデックス」ここ

は私のコードです:

foreach (DataRow drow in objD0s.Tables[0].Rows)// Adding values from a dataset to dictionary  
    { 


     string strvalue = Convert.ToString(drow["Chemical Name"]); 
     string doublevalue = Convert.ToString(drow["Global Warming"]); 
     Cdata.Add(Convert.ToString(strvalue), Convert.ToDouble(doublevalue)); 

    } 
    ColumnSeries colSeries = ChartChemImpact.Series[0] as ColumnSeries;  

     ((ColumnSeries)ChartChemImpact.Series[0]).DataContext = Cdata; 
     colSeries.ItemsSource = myDataTable0.DefaultView; 
     colSeries.IndependentValueBinding = new Binding("[Chemical Name]"); 
     colSeries.DependentValueBinding = new Binding("[Global Warming]"); 

    } 

XAM

chartingToolkit:Chart Name="ChartChemImpact" Title="Chart Title" Width="384"   Height="280"> 
    <chartingToolkit:ColumnSeries DependentValuePath="Key" IndependentValuePath="Value" ItemsSource="{Binding}" Name="colSeries" /> 
    </chartingToolkit:Chart> 

助けてください:(

+0

データセットは、2つの列「化学名」を持ち、「地球温暖化」 – MangoTable

+0

1. ValueBindingsはItemsSourceプロパティから値を受け取り、そのISN辞書(しかし、奇妙なクラスDefaultView)。 2. 'IndependentValueBinding'は' IndependentValuePath'と同じです。アイテムには適用され、コレクションには適用されません。したがって、コードファイルの最後の3行が間違っています。 – vorrtex

答えて

1

[OK]を、私は間違いを発見した。 xamlにはバインドパスとバリューパスがありますが、コード内で置き換えられます。

私はここに、これらの行を削除しますが、結果である:

foreach (DataRow drow in objD0s.Tables[0].Rows)// Adding values from a dataset to dictionary  
{ 
    string strvalue = Convert.ToString(drow["Chemical Name"]); 
    string doublevalue = Convert.ToString(drow["Global Warming"]); 
    Cdata.Add(Convert.ToString(strvalue), Convert.ToDouble(doublevalue)); 
} 

((ColumnSeries)ChartChemImpact.Series[0]).DataContext = Cdata; 
//And that's the end of the function, no more code 
} 
+0

お返事ありがとうございます!私はここにいくつかの他の問題は、私はまだ同じエラーが発生し続けていると思います。 XAMLコードに問題がある可能性があります。 – MangoTable

+0

@MangoTable私はxamlに気づいていません。はい。属性DependentValuePath = "Key"を 'DependentValuePath =" Value "'と 'IndependentValuePath'に変更します。 – vorrtex

+0

お返事ありがとうございます。この行を変更する: "((ColumnSeries)ChartChemImpact.Series [0])。DataContext = Cdata;"単純にcolSeries.ItemsSource = CData;私のために働いた。 – MangoTable

関連する問題