0

我已在設置窗格的SettingsFlyout控件中實施了一個條目。該頁面本身包含一個下拉菜單。無論用戶從此下拉列表中選擇什麼選項,都需要存儲在漫遊數據存儲中。很明顯,只要用戶在設置窗格中訪問此頁面,就需要檢索這些存儲的數據。我不確定編寫這段代碼用於數據舞臺和檢索的最佳位置是什麼?我看到SettingsFlyout對象具有onafterhide,onaftershow,onbeforehide和onbeforeshow事件。是否應該將這些用於此目的?將應用程序設置存儲到漫遊數據存儲中

回答

1

[Windows.Storage.ApplicationData.Current.localSettings](http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.applicationdata.aspx)或roamingSettings提供了獲取/設置設置鍵值對的內置支持。它還處理持久化到應用程序數據文件夾中的文件。它也按照文件要求進行配料。

你可以找到參考代碼在application data sample

var roamingSettings = Windows.Storage.ApplicationData.current.roamingSettings; 
function settingsWriteSetting() { 
    roamingSettings.values['my setting'] = 'my setting value'; 
} 

的問候,在彈出的事件 - 有事件可以被使用之前採取一些行動/彈出按鈕被隱藏後 - 在整體用戶流量。例如 - 我曾經在signin flyout附近創建了一個Promise。 afterhide被用來調用承諾的錯誤回調,錯誤被取消。

1

在設置彈出窗口中更改的設置應在用戶進行更改後立即生效,而不是等到隱藏彈出窗口後才能生效。我建議將您的flyout視爲頁面控件。

假設您的設置彈出在settings/mySettings.html中定義,請創建一個名爲settings/mySettings.js的JavaScript文件,並在設置頁面的頭部引用它。然後將下面的代碼添加到腳本文件中。

(function() { 
    "use strict"; 

    var page = WinJS.UI.Pages.define("/settings/mySettings.html", { 
     ready: function (element, options) { 
      // wire up event handlers for saving changes 
      // setup initial state 
     }, 
    }); 
})(); 

就像任何其他頁面控件一樣,您可以添加事件處理函數並在就緒函數中初始化頁面。如果您熟悉導航應用程序模板,則它是相同的。

+0

感謝您的回覆。這說得通。您是否意識到應該使用這些在後,隱藏,前後和上映前的事件? –

+0

我沒有必要使用它們,所以我會製作用例。總而言之,這些事件讓您能夠處理從飛出物外部展示或隱藏飛出物的事件。虛假場景:也許如果您觸發了按鈕的彈出窗口,您可能會使用onafterhide對包含該按鈕的屏幕進行一些更改? –

相關問題