2011-01-01 5 views
0

私のWP7プロジェクトで円グラフを作成するのに問題があります。現時点では、私のコードは以下の通りです。私はXML Webサービスからデータを戻すためにいくつかの方法を試しましたが、運はありません。誰かが私が間違って行ったことを見ることができますか?WP7円グラフに問題が発生しました

私は今、「System.Collections.Generic.IEnumerable型を「System.Xml.Linq.XElement」に暗黙的に変換できません。明示的な変換が存在します(キャストがありませんか? )」

XDocument XDocument = XDocument.Load(new StringReader(e.Result)); 

     XElement Traffic = XDocument.Descendants("traffic").First(); 
     XElement Quota = XDocument.Descendants("traffic").Attributes("quota"); 

     ObservableCollection<PieChartItem> Data = new ObservableCollection<PieChartItem>() 
     { 
      new PieChartItem {Title = "Traffic", Value = (double)Traffic}, 
      new PieChartItem {Title = "Quota", Value = (double)Quota}, 
     }; 

     pieChart1.DataSource = Data; 
+0

XMLファイルはどのように見えますか? – devuxer

答えて

2

私の推測では、この行は、コンパイルエラーがありますされていますDescendants("traffic")

XElement Quota = XDocument.Descendants("traffic").Attributes("quota"); 

結果がIEnumerable、ないXElementです。上記の行で、あなたはすでにその列挙型のFirstを得ています。それはあなたが望むアイテムですね。

クォータラインは次のようになります。賢明な

XElement Quota = Traffic.Attributes("quota"); 

スタイル、ほとんどの人は、クラスレベルのプロパティとメンバーと区別するためにtrafficquotadataのように、ローカル変数は、下のケースに入れてください。

更新:クォータラインがあるべきように、それは、Attributes("quota")戻りIEnumerable<XAttribute>次のようになります。

XAttribute Quota = Traffic.Attributes("quota").FirstOrDefault(); 

または簡素化する:

var traffic = XDocument.Descendants("traffic").First(); 
var quota = traffic.Attributes("quota").FirstOrDefault(); 

私はを意味することにしたくありませんしかし、このようなコンパイラのエラーを修正するには、スタックオーバーフローに来てはならないはずのものでなければなりません。コンパイラのエラー自体は、問題が何であるかを伝えています。メソッドは、以外の型を返します。と言っています。 varを使用すると、その一部を簡略化できます。

+0

これは問題のようです。 –

関連する問題