【问题标题】:ObservableCollection and displaying its data question, Windows Phone 7ObservableCollection 并显示其数据问题,Windows Phone 7
【发布时间】:2011-08-02 22:44:08
【问题描述】:

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

但是,当用户“收藏”我的 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"));
    ...    
  }
}

...获取/设置路径,也许通过将所有图像设置为一个键?

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

【问题讨论】:

  • 我意识到这是模拟代码,但该类不需要实现 INotifyPropertyChanged,因为 ObservableCollection 已经实现了它。 msdn.microsoft.com/en-us/library/ms668604.aspx
  • 谢谢。我已经拿出来了。
  • 那么我应该如何获取手机附带的图像的路径,以及将它们与从互联网上提取的标记为收藏的图像连接起来
  • 您的ImageList 类与Page1 和Page2 有什么关系?
  • 很抱歉没有完全理解这一点,但我会尽力回答这个问题。该类与这两个页面相关,因为我只是想将其用作将应用随附的 Stock 照片路径与用户可以从 RSS 提要中选择性保存的图像 URL 相结合的一种方式。

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


【解决方案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");
    }
}

【讨论】:

  • 我觉得这基本上应该可以工作:我将设备图像的文件路径设置为字符串,因此我可以将字符串反刍为图像源。这也适用于 RSS 提要,因为我可以将图像的 URL 添加到第 2 页上的字符串中,然后将它们全部组合到第 1 页上。由于我现在不在我的应用计算机上,有没有办法将其合并到隔离存储中?是否可以在其中添加代码?
  • 并且因为我对使用 silverlight 还是很陌生.. 导航到 Page1 时会调用 Void Main() 函数吗?公共类 Page1 和 Page2 会在同一个类 C# 文档中吗?
  • 第一条评论:你是什么意思?将 ImageList 实例保存到 IsolatedStorage?第二条评论: Main 方法只是为了展示一个工作示例而包含在内。您只需要 ImageList 类并在需要它的不同类中使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多