UWP - 从另一个页面获取滑块值
UWP - Get Slidervalue from another Page
我有 2 个页面:我的主页和我的设置页面 - 都在 XAML 和 xaml.cpp 中作为代码隐藏。我还有一个 class,我想在其中使用 Settings-Class 的值。 (正如我已经在另一个 post 中询问的那样)我可以使用 XAML 标签 NavigationCacheMode="Enabled"
将设置页面中的值保存在缓存中。使用这个我的 SliderValue 保持不变,即使我切换到我的主页并再次返回到设置页面。
我现在想做的是:一旦更改滑块的值,就保存它,并将该值存储到我可以从第三个 Class 访问的变量中。
到目前为止我得到了什么(不工作,总是显示初始值'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
按照我的逻辑class我想这样使用它:
int quality = Settings::getQuality();
快速回答:将滑块的值保存在 public 静态 属性 中,最好保存在单独的 class.
中
推荐答案:
您应该在您的应用程序中使用 MVVM 结构,这样您就有一个单独的层来存储您的设置数据。您可以将滑块的值保存在单例服务中,最好通过 IoC 容器注入。您可能还想将其保存在本地存储中,以便在用户关闭应用程序时保存设置。
MVVM 确实是基于 XAML 的应用程序的标准,这个概念不难学习和实现。
听起来您正在寻找一种方法来存储和检索您的应用程序的设置数据。 UWP 中内置了这些功能。请参考 Windows 开发中心的 this article。该页面上的示例适用于 C#,但指向 UWP API 参考的所有链接也包含适用于 C++ 的代码片段。
我有 2 个页面:我的主页和我的设置页面 - 都在 XAML 和 xaml.cpp 中作为代码隐藏。我还有一个 class,我想在其中使用 Settings-Class 的值。 (正如我已经在另一个 post 中询问的那样)我可以使用 XAML 标签 NavigationCacheMode="Enabled"
将设置页面中的值保存在缓存中。使用这个我的 SliderValue 保持不变,即使我切换到我的主页并再次返回到设置页面。
我现在想做的是:一旦更改滑块的值,就保存它,并将该值存储到我可以从第三个 Class 访问的变量中。
到目前为止我得到了什么(不工作,总是显示初始值'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
按照我的逻辑class我想这样使用它:
int quality = Settings::getQuality();
快速回答:将滑块的值保存在 public 静态 属性 中,最好保存在单独的 class.
中推荐答案: 您应该在您的应用程序中使用 MVVM 结构,这样您就有一个单独的层来存储您的设置数据。您可以将滑块的值保存在单例服务中,最好通过 IoC 容器注入。您可能还想将其保存在本地存储中,以便在用户关闭应用程序时保存设置。
MVVM 确实是基于 XAML 的应用程序的标准,这个概念不难学习和实现。
听起来您正在寻找一种方法来存储和检索您的应用程序的设置数据。 UWP 中内置了这些功能。请参考 Windows 开发中心的 this article。该页面上的示例适用于 C#,但指向 UWP API 参考的所有链接也包含适用于 C++ 的代码片段。