2013-11-14 71 views
-1

我在使用Windows 8/Xaml/C#在我的應用程序中存儲列表時遇到了一些麻煩。我的應用程序包含兩個頁面,能夠將頁面1中的數據傳遞到第2頁上的列表視圖中。然後所有項目都可以在第2頁上的列表視圖中看到,這非常棒,但是當我回到第一頁。無論如何在應用程序關閉之前將它們保留在列表視圖中?ListView在Windows 8中

+0

你是什麼意思下降了嗎?當您再次導航到頁面2時,ListView不會再次正確顯示它們嗎? – atomaras

+0

這是正確的。當我訪問這些頁面並導航到頁面2時,listview會隨着網頁動態填充,listview工作正常並正確填充。但是,當我回到頁面1,然後回到頁面2時,列表視圖中的項目已經消失(並且已經更新了任何剛剛訪問過的新的記錄。 – user2904529

+0

我不明白,但讓我們試試這個。將它們存儲在靜態字段中,然後從任意位置訪問它們,同時確保單個實例? – atomaras

回答

0

我瞭解你的問題後,我讀了標籤。

因爲你沒有指定你的實現是如何工作的,所以我會在這裏做很多假設。

不使用MVVM模式都假設(你應該Try Caliburn Micro

如果您使用的是Navigate方法,你應該能夠通過每一次您所執行的導航列表對象。

我已經準備了一個演示它:

第1頁代碼:

public sealed partial class Page1 
    { 
     public Page1() { InitializeComponent(); } 
     . 
     private void GoToPage2(object sender, RoutedEventArgs e) 
     { 
     Frame.Navigate(typeof(Page2), new string[] { "hello", "world", "sample" }); 
     } 
    } 

第2頁代碼:

public sealed partial class Page2 
{ 
    public Page2() { InitializeComponent(); } 

    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
    var argument = e.Parameter as IEnumerable<string>; 
    listViewControl.ItemSource = argument; 
    } 

    private void GoBackToPreviousPage(object sender, RoutedEventArgs e) 
    { 
    Frame.GoBack(); 
    } 
} 

(我離開了XAML代碼...但基本上是一個列表視圖,其itemtemplate設置爲顯示元素的文本塊以及執行導航的幾個按鈕)。

+0

只要確保每次都提供參數,並且對象的初始引用尚未清除。 – rodrigoelp