2014-09-04 23 views
0

啓動我的Win8商店應用程序時,我想傳遞參數參數。帶初始參數參數的Windows 8商店應用程序調用

我正在看以下在App類中調用的方法。看起來它正在傳遞參數,所以我的問題是如何將參數傳遞給「OnLaunched」?本質上講,當我運行該應用從Win8的菜單

protected override void OnLaunched(LaunchActivatedEventArgs e) 
    { 
     if (rootFrame.Content == null) 
     { 
      // When the navigation stack isn't restored navigate to the first page, 
      // configuring the new page by passing required information as a navigation 
      // parameter 
      rootFrame.Navigate(typeof(MainPage), e.Arguments); 
     } 
    } 

回答

0

這些參數可以通過可用於在應用程序啓動的應用程序啓動到指定的頁面二級瓷磚傳遞在直線距離。

我通常使用ViewManager來管理基於這些參數顯示的視圖。

App.cs

protected override async void OnLaunched(LaunchActivatedEventArgs args) 
{ 
    ApplicationData.Current.LocalSettings.Values[Constants.APP_PARAMETERS] = args.Arguments; 

    // Do not repeat app initialization when already running, just ensure that 
    // the window is active 
    if (args.PreviousExecutionState == ApplicationExecutionState.Running) 
    { 
     Window.Current.Activate(); 

     await ViewManager.Instance.LaunchView(); 

     return; 
    } 

ViewManager:

public class ViewManager 
{ 
    #region Singleton 
    private ViewManager() 
    { 
    } 

    static ViewManager _viewManager = null; 

    public static ViewManager Instance 
    { 
     get 
     { 
      if (_viewManager == null) 
      { 
       _viewManager = new ViewManager(); 
      } 

      return _viewManager; 
     } 
    } 
    #endregion 

    public async Task LaunchView() 
    { 
     bool displaySubheader = false; 
     var displayBackbutton = false; 

     var arguments = ApplicationData.Current.LocalSettings.Values[Constants.APP_PARAMETERS] as string; 
     var argumentsExist = !string.IsNullOrEmpty(arguments); 

     if (!argumentsExist) 
     { 
      await UIServices.Instance.Load(typeof(HomePage), null, displaySubheader, displayBackbutton); 
     } 
     else 
     { 
      displaySubheader = true; 
      displayBackbutton = false; 
      await UIServices.Instance.Load(typeof(GroupPage), arguments, displaySubheader, displayBackbutton); 

      var groupId = new Guid(arguments); 

      await ReadPost(groupId); 
     } 
    } 
相關問題