我有2个页面:我的主页面和我的设置页面 - 在XAML和xaml.cpp中都是代码。我还有一个课程,我想使用Settings-Class的值。 (正如我在另一篇文章中已经提到的那样)我可以使用XAML-tag NavigationCacheMode="Enabled"
从缓存中的Settings-Page中保存值。即使我切换到主页面并再次返回到设置页面,我的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
在我的逻辑类中,我想像这样使用它:
int quality = Settings::getQuality();
答案 0 :(得分:0)
快速回答:将滑块的值保存在公共静态属性中,理想情况是在单独的类中。
推荐答案: 您应该在应用中使用MVVM结构,这样您就可以使用单独的图层来存储设置数据。您可以在单例服务中保存滑块的值,最好通过IoC容器注入。您可能还希望将其保存在本地存储中,以便在用户关闭应用程序时保存设置。
MVVM实际上是基于XAML的应用程序的标准,这个概念并不难学习和实现。
答案 1 :(得分:0)
听起来您正在寻找一种存储和检索应用设置数据的方法。 UWP已经内置了这方面的功能。请参阅Windows开发人员中心的this article。该页面上的示例适用于C#,但所有指向UWP API引用的链接都包含C ++的代码片段。