我有 2 个页面:我的主页面和我的设置页面 - 在 XAML 和 xaml.cpp 中作为代码隐藏。我还有一个类,我想在其中使用 Settings-Class 的值。(正如我在另一篇文章中已经问过的)我可以使用 XAML-tag 将设置页面中的值保存在缓存中NavigationCacheMode="Enabled"
。使用这个,即使我切换到我的主页并再次返回到设置页面,我的 SliderValue 也保持不变。
我现在想要做的是:更改滑块后立即保存它的值,并将此值存储到我可以从第三个类访问的变量中。
到目前为止我所得到的(不起作用,总是显示初始值 '70'):
设置.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();
快速回答:将滑块的值保存在公共静态属性中,最好是在单独的类中。
推荐答案:您应该在您的应用程序中使用MVVM结构,这样您就有一个单独的层来存储您的设置数据。您可以将滑块的值保存在单例服务中,最好通过 IoC 容器注入。您可能还希望将其保存在本地存储中,以便在用户关闭应用程序时保存设置。
MVVM 确实是基于 XAML 的应用程序的标准,其概念不难学习和实现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句