中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

DataGridImageColumn

で昨日の続きでDataGridImageColumnを作っているわけですが、ちょっと悩みます。

今作っているのはファイル名を与えられたらそのImageを表示するというもので、たとえばDBにファイルへのフルパスを指定されていた場合それを読みとって表示します。

ColumnStyleはあくまで描画エンジン?なので、データ自体は持ちません。
どうやってデータを取得するかというとDataGridColumnStyle.GetColumnValueAtRowというメソッドで現在描画すべきセルのデータを取得できます。今回の場合画像へのパスですね。

これをDataGridImageColumn.Paintで描画するのですが、Paintの中でファイルから画像を読み取ってもそれをおいておく場所が無いんです。
もしも、DataSetに書き戻しちゃうとパスが消えちゃうし。
そうすると、セルを再描画するたびにファイルからデータを読み取ることになってしまって「効率はどうなの?」って思ってしまいます。

ただこのPaintメソッドは描画するのに必要な分だけしか呼び出されないので、1万行ある場合には必ずファイルから読み取る方が効率はかなり良いんですよね。
全データメモリに格納するなんて難しくなるだろうし。

でも、毎回ファイルから読み取るのも抵抗があるし、ASP.Netで使うSystem.Web.Caching.Cacheのような物があれば良いんですが、、、

投稿日時 : 2004年4月19日 12:36

コメントを追加

# re: DataGridImageColumn 2004/04/19 14:25 渋木宏明(ひどり)

画像ファイルのパス名をキーに、Image のインスタンスを値にとる、簡単なキャッシュを内部に持てばいいんじゃないでしょうか?

標準のコレクションの組み合わせだけで、一応それなりのものはできますよ。

↓では、HybridDirctory と Stack を組み合わせて、キーが整数、値が Stream のインスタンスをとるキャッシュ SimpleCache を実装しています。

http://www.ailight.jp/BBS/Detail.aspx?Header_ID=686

の12ページ目くらいかな?

# re: DataGridImageColumn 2004/04/19 14:36 中 博俊

全部のインスタンスを持つのはいかがなものかと思うんですよねー
適当な範囲だけ生存していてくれると助かるんですが。全部持つか持たないかしか現在のところなさそうかなと。
メモリがいっぱいになったら切り捨ててくれる機構を作れないですよね?できるのかな?

# re: DataGridImageColumn 2004/04/19 21:31 渋木宏明(ひどり)

もちろん、全件のインスタンスを持つ必要ないですよ。
キャッシュですもん (^^;

>メモリがいっぱいになったら切り捨ててくれる機構を作れないですよね?できるのかな?

「メモリがいっぱい」だと面倒なので、設定した件数を超えたら、古いものから廃棄してます。

DAVSharp にはキャッシュ以外の実装も入っていて分かり難そうなので

http://blogs.users.gr.jp/hidori/archive/2004/04/19/2093.aspx

なんてのを作ってみました。

# re: DataGridImageColumn 2004/04/19 22:05 中 博俊

hummm.
あとはDataGridColumnStyleはIDisposableを実装していないのでClearイベントでもつければ良いかな。
あとは微妙な件数ですね。
50件くらいにしておくかな

# re: DataGridImageColumn 2004/04/20 0:11 かる

私も同じ様なテーマのmyプロジェクトが、進行中(ほんまは、停止中)です。
# (data)Grid Extension Project(GEP)、今付けた(^^;)
DataGridImageColumn(画像を表示するの)は、比較的簡単にできるんだけど、
効率とか、画像処理とか、色々考えていると、モチベーション下がりっぱなし。
それに、時期Versionでは、実装されるかも(されるのかな?)って、考えると、
悩ましい限りです。



# re: DataGridImageColumn 2004/04/20 0:13 中 博俊

今のところされてなさそうですが・・・

# re: DataGridImageColumn 2004/04/20 11:06 菊池

DataGridViewではイメージを簡単に置けたはず…

# Есть нормальные способы зароботка с помощью интернее? 2008/06/27 4:09 Dolphin_ukr

Всем здравствуйте,
подскажите, кто как зарабатывает на интернет?


# http://www.RENEWHOUSE4U.COM 2010/01/25 3:07 georgesover

We renovate houses In Maryland,US.
Custom / External remodelings,
equitable prices,license,
references,photos,free estimates,
also obtain houses to refurnish:
http://www.renewhouse4u.com.
Mobile:410-978-7981.
Thanks.

# NjJKbGfnJIEb 2011/09/29 18:34 http://oemfinder.com

6Wj9nX Fresh thoughts, fresh view on the subject..!

# YtuOLImpJJsKmVWpY 2011/10/21 22:07 http://www.epotenzmittel.com/

The author deserves for the monument:D

# hGKSxzykPvBjEReEHPq 2011/11/02 5:30 http://www.pharmaciecambier.com/

Thanks for all the answers:) In fact, learned a lot of new information. Dut I just didn`t figure out what is what till the end!...

# GeXgVlZxpuIdLw 2011/11/02 6:25 http://optclinic.com/

Comrade kill yourself.

# JfXnXIwURkLQt 2011/11/09 6:28 http://www.noteletrackpaydayloansnofax.com/

Honestly, not bad news!...

# xIjDViKyZdB 2011/11/16 3:02 http://circalighting.com/details.aspx?pid=425

Yet, much is unclear. Could you describe in more details!...

# fgDZqoZtOVNmStBPOg 2011/12/27 6:13 http://www.hansensurf.com

Gripping! I would like to listen to the experts` views on the subject!!...

タイトル
名前
URL
コメント