2010年9月25日土曜日

WP7プログラム3

uGReader PCからマーケットプレイスを見ると載るようになりました。デバイスからはまだ見えません。以前はPCからデバイスをadesに設定して見るとver1.4が見えていましたが、今はver1.4も見えていません。
t-01bとかでちゃんと見えるようになるか心配です

さて、WP7に移植ですが
まずxmlのデータ受信ができたので、受信したxmlをクラスに取り込んで表示するところに挑戦しました。

WM6では XmlDocument クラスを使っていましたが、silverlight では使えず、かわりにXDocumentを使いました。名前はよく似てますが、使い方は微妙に違います

XDocument,XElement等を使うには System.Xml.Linq を参照に加える必要がりました

using System.Linq;
using System.Xml.Linq;

もしておきます。SelectSingleNodeとか使っていたところを全部下のような感じで書き換えました

XNamespace feed = "http://www.w3.org/2005/Atom";
XElement node = xml.Element(feed + "feed"); 
link = node.Elements(feed + "link").First(p=>p.Attribute("rel").Value=="self").Attribute("href").Value;

 //.SelectSingleNode("feed:link[@rel='self']/@href", nsMgr).InnerText;


本当ならもっと簡単に(xmlからいきなりクラスに変換したり、xmlをリストコンポーネントにいきなりバインドしたり)できるんだろうなぁーと思いながら、せっせと書き換えました

xmlデータをクラスオブジェクトに書き込みができたので、クラスをリストコンポーネントにバインドして表示が出来上がりです。すげー簡単だー。と言いたいところですが、バインドするのに手こずりました。

よくわかってる人には、すごく簡単にできちゃうんでしょうね。



珍しさもあってpivotコントロールに、フォルダリスト、記事リスト、記事表示を載せてみました。
とにかくguiはWM6で全部自分で実装しなければいけなかった事を考えるとものすごく楽です。
データバインドも素晴らしいです

pivotでアイテムを切り替えて表示した場合はフォームの切り替えをしているわけでは無いので、backハードキーを押すと、アプリ終了まで巻き戻ってしまうので考え物です


順調に出来たと思ったら webbrowserで記事を表示すると文字化けしてしまいました

WM6のときは WebBrowser.DocumentText を使いましたが、wp7では

 webBrowser1.NavigateToString(str);

とします。
たとえば、ここで str = "テスト"; とかを表示させても文字化けします。

どーしましょう...




ここまで来ると早く実機を触りたいです

0 件のコメント: