2017-05-30 76 views
1

我有2頁:我的主頁和我的設置頁 - 無論是在XAML和xaml.cpp作爲代碼背後。我還有一個班,我想要使用Settings-Class的值。 (正如我在另一篇文章中已經提到的),我可以使用XAML標籤NavigationCacheMode="Enabled"將Settings-Page中的值保存在緩存中。即使我切換到我的主頁並返回到設置頁面,使用此SliderValue也保持不變。UWP - 從另一頁獲取Slidervalue頁面

我現在要做的事情是:一改動就保存滑塊的值,並將這個值存儲到我可以從第三個類訪問的變量中。

到目前爲止我有什麼(不工作,處處呈現出初值 '70'):

Settings.xaml.cpp:

UWPApp::Settings::Settings() 
{ 
    InitializeComponent(); 
    quality = sldQuality->Value; 
} 

int Settings::getQuality() { 

    return quality; 

} 

void DirectX12XamlApp::Settings::sldQuality_ValueChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs^ e) 
{ 
    quality = sldQuality->Value; 
} 

在Settings.xaml.h:

public: 
     Settings(); 
     int getQuality(); 


private: 
    int quality; 

在Settings.xaml:

<Slider x:Name="sldQuality" ValueChanged="sldQuality_ValueChanged" HorizontalAlignment="Left" Margin="38,325,0,0" VerticalAlignment="Top" Width="168" Value="70"/> 
//initial-Value = 70, which is ALWAYS showing when using getQuality() in an other Class 

在我logicclass我想用這樣的:

int quality = Settings::getQuality(); 

回答

0

快速回答:保存滑塊的價值在一個公共靜態屬性,最好是在單獨的類。

建議回答: 您應該在您的應用中使用MVVM結構,因此您將有一個單獨的圖層來存儲您的設置數據。您可以將滑塊的值保存在單例服務中,理想情況下通過IoC容器注入。您可能還想將其保存在本地存儲中,以便在用戶關閉應用程序時保存設置。

MVVM真的是基於XAML的應用程序的標準,並且這個概念不難學習和實現。

0

聽起來像你正在尋找一種方法來存儲和檢索你的應用程序的設置數據。這些功能已被納入UWP。請參閱Windows開發人員中心的this article。該頁面上的示例適用於C#,但所有指向UWP API參考的鏈接也包含C++的代碼片段。