2011-06-06 23 views
0

我有一個Panorama應用程序,其中一個全景圖項目是'收藏夾'。我使用了一個帶有ItemViewModel和MainViewModel的標準Windows Phone項目來開始。我用一個簡單的字符串'Favorite'替換了lineone/two/three。我實際加載從獨立存儲的收藏夾中的數據LoadData()函數,並使用填充「物品」:Windows Phone Panorama應用程序的收藏夾

 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> 

對於第二個,可發現性是一個問題,再加上我甚至不知道這是否支持第三方應用程序。我傾向於第一個選項,因爲它非常直觀。請指教。

+2

您應該意識到,Marketplace提交準則不允許您使用press和作爲做某事的唯一手段。您仍然需要某種主要按鈕或菜單項來刪除項目。按住是爲了給高級用戶一個捷徑。 – 2011-06-06 13:01:12

+0

注意到,謝謝喬希:) – Freakishly 2011-06-07 21:02:57

回答

1

如果您的待辦事項列表是一個ObservableCollection,當它發生更改時發送NotifyPropertyChanged事件,那麼您不需要擔心將自己重新加載列表,數據綁定會自行處理。

對於可發現性,按住是很常見的,我認爲。按住組件(上下文菜單)可在Silverlight Toolkit for WP7(http://silverlight.codeplex.com)中免費獲得

+0

「你不必擔心重新加載你的自我名單,數據綁定照顧這個」。這是否也適用於刪除項目?我將使用點擊處理程序通過刪除相應的「最愛」來更新「項目」,而不僅僅是編輯它。 – Freakishly 2011-06-06 09:47:12

相關問題