Windows Phone Panorama应用程序中的收藏夹

时间:2011-06-06 09:36:36

标签: windows-phone-7 mvvm favorites

我有一个全景应用程序,其中一个全景项目是“收藏夹”。我使用了一个带有ItemViewModel和MainViewModel的标准Windows Phone项目。我用一个简单的字符串'Favorite'替换了lineone / two / 3。我实际上从LoadData()函数中的独立存储加载收藏夹数据,并使用:

填充'Items'
        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>

对于第二个,可发现性是一个问题,而且我甚至不知道第三方应用是否支持此功能。我倾向于第一个选项,因为它非常直观。请指教。

1 个答案:

答案 0 :(得分:1)

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

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