2016-03-07 46 views
1

當用戶點擊列表中的特定項目時,將打開新頁面,並在此處可以看到特定項目的完整詳細信息。如果他認爲他不想要那個,他可以刪除特定的項目。我的問題是文件沒有從列表中刪除。如何從Windows Phone 8應用程序列表中刪除項目應用程序C#

public partial class DetailsPage : PhoneApplicationPage 
{ 
    SavedData prkdata = new SavedData(); 
    SavedDataList parkinglistobj = new SavedDataList(); 
    IsolatedStorageFile Settings = IsolatedStorageFile.GetUserStoreForApplication(); 
    int index; 

    public DetailsPage() 
    { 
     InitializeComponent();   
     //this.Loaded += MainPage_Loaded; 
    }   

    protected override void OnNavigatedTo(NavigationEventArgs e) 
    {    
     string selectedIndex = ""; 

     if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedIndex)) 
     { 
      index = int.Parse(selectedIndex); 
      try 
      { 
       parkinglistobj.Clear(); 

       if (Settings.FileExists("CardItemList")) 
       { 
        using (IsolatedStorageFileStream fileStream = Settings.OpenFile("CardItemList", FileMode.Open)) 
        { 
         DataContractSerializer serializer = new DataContractSerializer(typeof(SavedDataList)); 
         parkinglistobj = (SavedDataList)serializer.ReadObject(fileStream); 
        } 
       } 

       ParkListBox.ItemsSource = parkinglistobj.Where(i => i.ID == index).ToList(); 

       //String itemselected = parkinglistobj.Where(i => i.ID == index).Select(i.CardName).ToString(); 
       //MessageBox.Show(itemselected); 
      } 
      catch 
      { 
       // 
      } 
     } 
    } 

    private void DeleteFile(object sender, EventArgs e) 
    { 
     //ParkListBox.SelectedItem = parkinglistobj.Select(i => i.ID == index); 
     //SavedData item = ParkListBox.DataContext as SavedData; 
     SavedData item = parkinglistobj.Select(i => i.ID == index) as SavedData; 
     //SavedData item = ParkListBox.SelectedItem as SavedData; 
     parkinglistobj.Remove(item); 
     MessageBox.Show("Deleted Successfully"); 
    } 
} 
+1

從刪除空的「catch」塊開始 - 它吞噬發生的任何異常,所以如果出現錯誤或沒有錯誤,您就沒有ide。 –

+1

此外,你的'DeleteFile'方法的肉被註釋掉了,所以它沒有做任何事情也就不足爲奇了。 –

+0

其實我正常試過。但是,在發佈在這個博客中,我評論它...顯示所有我嘗試過多少種方式,嘗試方法是嘗試顯示內容的其他功能。內容正在顯示,但並未刪除。 @DStanley – user3077282

回答

0

在的DeleteFile事件處理程序,你應該刪除的項,然後重新連載回給CardItemList文件

+0

我是新開發者@Chairag Shah你能否清楚地告訴我如何重新進行回退? – user3077282

0

你需要回去傳達給你的視圖(這是你的ListBox)有什麼東西已更改,因此需要更新/重繪其內容。

不幸的是,一個通用的List<T>不會自動爲你做這個。您需要的是使用ObservableCollection<T>

MSDN: ObservableCollection Class,要注意的這一段描寫:

表示一個動態數據採集,提供通知,當項目將添加,刪除,或當整個列表被刷新。

如果您正確使用它,集合的任何添加和刪除將導致ListBox重繪本身。

相關問題