【问题标题】:Favorites in a Windows Phone Panorama applicationWindows Phone 全景应用程序中的收藏夹
【发布时间】:2011-06-06 09:36:35
【问题描述】:

我有一个全景应用程序,其中一个全景项目是“收藏夹”。我使用了一个带有 ItemViewModel 和 MainViewModel 的标准 Windows Phone 项目来开始。我用一个简单的字符串“Favorite”替换了 lineone/two/three。我实际上从 LoadData() 函数中的隔离存储中加载收藏夹数据,并使用以下方法填充“项目”:

        IsolatedStorageFileStream favoritesFile = store.OpenFile("favorites.txt", FileMode.OpenOrCreate, FileAccess.Read); 
        string lines; 

        Items.Clear(); 
        using (StreamReader reader = new StreamReader(favoritesFile)) 
        { 
            while ((lines = reader.ReadLine()) != null) 
            { 
                this.Items.Add(new ItemViewModel() { Favorite = lines }); 
            } 
        } 

我希望不仅能够在此全景项目中查看我的收藏夹,还可以删除它们(当我导航到项目详细信息页面时,会将项目添加为收藏夹)。我考虑过的两个选项是:

  • 在文本旁边显示一个黄色星号。点击星号将从列表中删除该项目。
  • 某种按住 --> 删除操作。

对于第一个,我不确定删除项目后如何刷新列表。显然,我无法导航到同一页面 :) 另外,我如何判断哪个星对应于哪个收藏项,因为收藏项将绑定在 xaml 中,如下所示:

                            <TextBlock Margin="10,10,0,0" Text="{Binding Favorite}" TextWrapping="Wrap" Style="{StaticResource PhoneTextSubtleStyle}" Grid.Column="0" />
                            <Button Grid.Column="1" Click="FavoriteButton_Click" BorderThickness="0" Height="40">
                                <Button.Background>
                                    <ImageBrush ImageSource="/WindowsPhonePanoramaApplication2;component/Images/appbar.feature.email.rest.png" Stretch="None" />
                                </Button.Background>
                            </Button>

对于第二个,可发现性是一个问题,而且我什至不知道第三方应用程序是否支持这一点。我倾向于第一个选项,因为它相当直观。请指教。

【问题讨论】:

  • 您应该知道,市场提交指南不允许您使用按住作为做某事的唯一方式。您仍然需要某种主按钮或菜单项来删除项目。按住是为高级用户提供快捷方式。

标签: windows-phone-7 mvvm favorites


【解决方案1】:

如果您的待办事项列表是一个 ObservableCollection,它在更改时发送 NotifyPropertyChanged 事件,那么您无需担心自己重新加载列表,数据绑定会自行处理。

对于可发现性,我认为按住是很常见的。 Silverlight Toolkit for WP7 (http://silverlight.codeplex.com) 中免费提供了按住组件(上下文菜单)

【讨论】:

  • “您不必担心自己重新加载列表,数据绑定会处理这个问题”。删除项目也是如此吗?我会使用点击处理程序通过删除适当的“收藏夹”来更新“项目”,而不仅仅是编辑它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 2015-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多