1

私は私が携帯電話に持っているイメージを取る必要がある私のアプリの一部を開発しています(ユーザーはアプリケーションでそれらをダウンロードします)、それらをデータバインドされたリストボックスに表示します。これをPage1と呼ぶことにしよう。ObservableCollectionとそのデータ質問を表示、Windows Phone 7

しかし、ユーザーが自分のRSSフィードから画像を「お気に入り」にしたときに、このコレクションに追加したいと考えています。このページ2を呼び出します。

本質的には、Page1アイテムとPage2アイテムを組み合わせてPage1に表示したいと考えています。私はまた、ユーザーが好きな画像を見せてもらうことができるようにしたいと考えています。

私はこれについてどうなるのか不明です。別のクラスを作成し、すべてのアイテムを隔離されたストレージのファイルに書き込みますか?

モックコード

public class Imagelist : ObservableCollection<Images> 
{ 
    public Imagelist() : base() 
    { 
    //add items from page1. 
    //add items from page2. 

    Add(new Images("Imagepath")); 
    ...  
    } 
} 

... /多分キーにすべての画像を設定することで、パス機能を設定します(私のアプリのコンピュータ上ではないから)?

わかりませんが、確かにいくつかの洞察力を使うことができます。

+0

私はそれがモックコードだと認識しますが、ObservableCollectionが既に実装しているため、クラスはINotifyPropertyChangedを実装する必要はありません。 http://msdn.microsoft.com/en-us/library/ms668604.aspx – trydis

+0

ありがとうございます。私はそれを取り除いた。 – topcoderwannabe

+0

それでは、電話機に付属している画像のパスを取得するだけでなく、インターネットから引っ張られたものに参加する方法もあります。 – topcoderwannabe

答えて

1

ImageListをシングルトンとして実装すると効果があります。私は画像の代わりに文字列を追加する簡単な例を作成しました。

void Main() 
{ 
    var page1 = new Page1(); 
    var page2 = new Page2(); 

    foreach (var txt in ImageList.Instance) 
    { 
     Console.WriteLine (txt); 
     // prints: 
     // Instance created 
     // page1 
     // page2 
    } 
} 

public class ImageList : ObservableCollection<string> 
{ 
    private static ImageList _instance; 
    public static ImageList Instance 
    { 
     get 
     { 
      if(_instance==null) 
      { 
       _instance = new ImageList(); 
       _instance.Add("Instance created");  
      } 
      return _instance; 
     } 
    } 

    private ImageList() 
    { 
    } 
} 

public class Page1 
{ 
    public Page1() 
    { 
     ImageList.Instance.Add("page1"); 
    } 
} 

public class Page2 
{ 
    public Page2() 
    { 
     ImageList.Instance.Add("page2"); 
    } 
} 
+0

これは本質的に私は感じます:デバイスイメージのファイルパスが文字列として設定されているので、イメージソースとして文字列を逆戻りさせることができます。これは、RSSフィードでも機能します.2ページの文字列に画像のURLを追加して、1ページに表示するように組み合わせることができます。私は現在、自分のアプリケーションコンピュータにはないので、これを隔離されたストレージに組み込むことはできますか?コードを追加することは可能ですか? – topcoderwannabe

+0

と私はまだSilverlightを使用することは非常に新しいです.Void Main()関数は、Page1?にナビゲートするとき呼び出されますか?パブリッククラスPage1とPage2は同じクラスのC#ドキュメントにあるでしょうか? – topcoderwannabe

+0

第1コメント:どういう意味ですか? ImageListインスタンスをIsolatedStorageに保存しますか? 2番目のコメント:現実の例を示すためにMainメソッドが追加されました。 ImageListクラスが必要なのは、ImageListクラスを必要とするさまざまなクラスでのみ使用できます。 – trydis

関連する問題