fc2ブログ

くわぽんのつれづれ日記

思うが侭、つれづれに書いています。ほぼ、毎日更新中!!

久しぶりのWeb開発

久しぶりにWeb開発を始めた。


今回は、Silverlight で DataVisualization クラスを使った開発だ。
早い話が、グラフを描こうということだね。

開発ツールは、Visual Studio 2010(.NET 4)+Silverlight toolkitで行った。

これが結構大変だった。

なんせ、
初めてのSilverlight開発。
ドキュメントが足りない。
サンプルアプリにソースコードが付いていない。
Blend4がないとできないことがある。
・・・
などなどなど

というわけで、急きょExpression Blend4を追加した。

Silverlight は.NET Web Serviceと通信できる。
ただし、非同期通信に限られる。

開発の順番としては、

1) .NET Web Serviceで表示するデータを提供するサービスを作る。
2) Silverlight のプロジェクトで.NET Web ServiceをService Referencesに追加。
3) 開発する。

といった順番になる。

グラフの作りこみはXAMLで行うのだが、
まず、Chartコントロールを置いて、Seriesを変更することで円グラフなど、グラフの種類を選択する。
いきなり円グラフを置いても機能しない。

グラフの再描画はChartコントロールから階層をを指定して再描画させる必要がある。
C#なら
(Chart1.Series[0] as ColumnSeries).Refresh();
などと書くわけだ。

そのほかにもいろいろなことがあり、大変苦労した。

そのうち、ホームページにコンテンツとして掲載しようと思っている。
掲載予定の内容は、
・Chartの描き方(基本)
・Chartで要素の数が可変の場合のプログラム。
・Chartで色を変えたい場合のXAMLコード。
・Chartで凡例を消す方法。
・ChartとTabコントロールとGrid(Tableの代わり)の組み合わせ方。
など

楽しみな人、情報がほしい人は、Nice!コメントをください。
Nice!が多ければ、早めに対応するかもしれません。

個別の質問もOKですが、体調によっては時間がかかりますので悪しからず。

では(^^)/
スポンサーサイト



  1. 2010/09/01(水) 12:33:14|
  2. 未分類
  3. | トラックバック:0
  4. | コメント:4
<<3D製品は買い? | ホーム | 秋葉原で香港版のiPhone4!!これって違法じゃないの?>>

コメント

Refreshできません・・・

(Chart1.Series[0] as ColumnSeries).Refresh();
でも再描画できません。
ColumnSeries の完全名を教えていただけますでしょうか?
オブジェクトブラウザで検索してもでてきませんでした。
  1. 2011/02/04(金) 18:05:06 |
  2. URL |
  3. さとる #-
  4. [ 編集 ]

Re: Refreshできません・・・

さとる さん
コメントありがとうございます。

> (Chart1.Series[0] as ColumnSeries).Refresh();
> でも再描画できません。
> ColumnSeries の完全名を教えていただけますでしょうか?
> オブジェクトブラウザで検索してもでてきませんでした。

実は、チャートの種類によって若干リフレッシュの方法が異なります。
チャートの種類を示していただければ、やり方を示せると思います。

一番面倒なのは、StackedColumnSeriesなどで、これは、明示的にRefreshを禁止しています。
そのため、更新の方法がほかと全く異なります。

具体的には、引き渡す構造体の値が変わったことを明示的に通知するのですが、
構造体にそのようなメソッドがあるわけもなく、
仕方がないので、一度”Null”を引き渡してから表示したい構造体を引き渡せば
簡単にRefreshの代わりになります。

教科書的な美しい方法ではないかもしれませんが、私にはこの方法しか見つけられませんでした。

参考になれば幸いです。

うまくいかない場合は、もう一度コメントください。
来週の月曜日以降になりますが、サンプルソースを提供できるかもしれません。

その際は、どのSeriesか明記してください。

よろしくお願いします。
  1. 2011/02/04(金) 19:00:48 |
  2. URL |
  3. くわぽん #-
  4. [ 編集 ]

Re: Re: Refreshできません・・・

すみません。
ColumnSeriesって書いてありましたね。

細かい用語が間違っていたらごめんなさい。
大昔のプログラマなので、用語の使い方がいい加減なもので(^^;

ColumnSeriesであれば、XAMLで定義したChartControl名からの階層で指定する方法でRefreshできるはずです。

1.Silverlightの画面上にChartControlを配置してChartControl名を宣言します。
2.ChartControl内のSeriesを変更するか、削除追加してColumnSeriesを追加します。
(このとき、オブジェクトブラウザからドラッグアンドドロップで持ってきてはいけません。)
3.とりあえず、グラフのデータを渡してみてください。
4.(ChartControl名.Series[0] as ColumnSeries).Refresh();
で更新されるはずです。

月曜日中に、サンプルコードを掲載します。
  1. 2011/02/04(金) 19:24:36 |
  2. URL |
  3. くわぽん #-
  4. [ 編集 ]

サンプルコードです。

コメントだと、スパムと判定されてしまうので、エントリーを起こしました。
ブログエントリーを見てください。
アドレスは以下の通りです。
http://kuwapon.blog60.fc2.com/blog-entry-1090.html
を見てください。
  1. 2011/02/07(月) 22:21:05 |
  2. URL |
  3. くわぽん #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://kuwapon.blog60.fc2.com/tb.php/993-1ce801ea
この記事にトラックバックする(FC2ブログユーザー)

アクセスカウンター

オンラインカウンター

現在の閲覧者数:

プロフィール

くわぽん

Author:くわぽん
くわぽんのブログへようこそ!
気が向いたらコメントください♪

アフィリエイトバナー

広告の中で説明だけ読んでよさそうなものを出しています。
よかったらクリックしてね。
詐欺みたいのがあったら教えてね。

ブロとも申請フォーム

この人とブロともになる

リンク

このブログをリンクに追加する

カテゴリ

D4でモバイル生活 (29)
風来人観察日記 (66)
ゲーマーの独り言 (183)
つれづれ日記 (114)
音楽を持ち歩く (47)
Windows Home Server 管理日記 (95)
Dolce Gustoとの日がな一日 (22)
お篭り部屋構築日記+愚痴 (53)
ウツ(鬱) (99)
未分類 (800)
So-Netの名残 (4)
DNNを使いましょう (26)
コカコーラとのお付き合い (9)
RPGを語る (4)
テレビにパソコン生活 (3)
”使えるねっと”は使える? (12)
Android日記 (4)
再生した地球にて (29)
セキュリティBlog (19)
Cuckoo SandBox (5)

検索フォーム

月別アーカイブ

FC2ブログランキング

FC2Blog Ranking

QRコード

QRコード