2016-03-30 10 views
1

私のソリューションでは、「Images」フォルダにいくつかのイメージがあります。私のライブラリーのクラスの中から、実行時にどのイメージを使うべきかを決めたいと思います。画像を使用するために、実行時に決定次にイメージをクラスライブラリに保存して、どのクラスからでもアクセスするには

myImage = FindResource("MyImageResource") as BitmapImage; 

:私は背後にあるユーザーコントロールのコード内からこれを行うだろう古い方法はそうのようなクラスのコンストラクタ内のすべての画像をロードすることです。

しかし、これは私のクラスライブラリのどのクラスでも動作していないようですが、それはMVVMについて読んだことのすべてに反しているようです。私は基本的に を行うにしようとしています何の

少しより多くの情報私は、このようなドライブの種類と、その名前として挿入されたドライブ上のすべての情報を保存するモデルクラスを持っています。

ドライブが挿入または削除されたときを監視するビューモデルクラス。

ビュークラスは、システムのドライブに似ているボタンのコレクションを保持するパネルです。

私は店とWPFのクラスライブラリで画像を読み込む必要がありますどのように:私の質問を明確にする

(MVVMパターンで)使用するイメージをどのクラスで決定する必要がありますか?私はこれまで行うことを決めた何

+1

質問は非常に広いです。一般に、ロードされたアセンブリから[リソースファイルパックURI](https://msdn.microsoft.com/en-us/library/aa970069(v = vs.100).aspx#Resource_File_Pack_URIs ___ Local_Assemblyを使用してイメージリソースをロードします。 )。 – Clemens

+0

これは、MVVMパターンを使用してはならないよりも、書かれたカスタムユーザコントロールの場合です。コード内のすべてのロジックを残しておいてください。 – auburg

+0

なぜそうなのか説明できますか? – Timmoth

答えて

0

はモデルクラス私はこのラインを使用して、そのドライブの種類を表しイメージにのコンストラクタで設定されBitmapImageのプロパティを与えることです:

DiskImage = new BitmapImage(new Uri("/MyApp;component/Images/DiskDrive.png", UriKind.Relative));