ObservableCollection并显示其数据问题,Windows Phone 7

时间:2011-08-02 22:44:08

标签: c# silverlight windows-phone-7 observablecollection inotifypropertychanged

我正在开发我的应用程序的一部分,我需要在手机中拍摄图像(用户使用应用程序下载它们)并将其显示在数据绑定列表框中。我们称之为Page1。

但是,当用户从我的RSS Feed中“收藏”图像时,我希望能够添加到此集合中。我们打电话给这个页面2。

所以从本质上讲,我想组合Page1项和Page2项,并在Page1上显示它们。我还希望能够允许用户删除他们喜欢的任何图像。

我不确定如何解决这个问题。我是否创建了一个单独的类,并将所有项目写入隔离存储中的文件?

模拟代码(因为不在我的应用计算机上)

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

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

...获取/设置路径,可能是将所有图像设置为一个键?

不确定,但绝对可以使用一些见解。

1 个答案:

答案 0 :(得分: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");
    }
}