[英]Composite Setting Values not Saved after Closing the App
By the end of the Saving function, composite settings are saved and retrieved correctly. 在“保存”功能结束时,可以正确保存和检索复合设置。 However after closing down the Visual Studio run time instance and running the project again, composite values are back to default. 但是,在关闭Visual Studio运行时实例并再次运行项目后,复合值将恢复为默认值。 What could be wrong here? 这有什么问题吗?
Save 救
private void SaveSettings()
{
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
var compositeTest = (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["Test"];
// Save test
compositeTest["A"] = PropA;
compositeTest["B"] = PropB;
compositeTest["C"] = PropC;
// Retrieve test
var a = compositeTest["A"];
var b = compositeTest["B"];
var c = compositeTest["C"];
}
Build 建立
private void BuildSettings()
{
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
var compositeTest = (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["Test"];
if (compositeTest == null)
{
Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["A"] = PropA= 1;
composite["B"] = PropB= 1;
composite["C"] = PropC= 1;
localSettings.Values["Test"] = composite;
}
else
{
PropA= (int)compositeTest["A"];
PropB= (int)compositeTest["B"];
PropC= (int)compositeTest["C"];
}
}
You need to add the composite setting to the Values IPropertySet
of the LocalSettings
: 您需要将复合设置添加到LocalSettings
的Values IPropertySet
中:
private void SaveSettings()
{
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
var compositeTest = new Windows.Storage.ApplicationDataCompositeValue();
compositeTest["A"] = "A";
localSettings.Values["Test"] = compositeTest;
}
private void BuildSettings()
{
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
var compositeTest = localSettings.Values["Test"] as Windows.Storage.ApplicationDataCompositeValue;
var a = compositeTest["A"];
}
Edit: Try to reset the localSettings.Values["Test"]
key in your SaveSettings()
method: 编辑:尝试在SaveSettings()
方法中重置localSettings.Values["Test"]
键:
private void SaveSettings()
{
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
var compositeTest = (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["Test"];
// Save test
compositeTest["A"] = PropA;
compositeTest["B"] = PropB;
compositeTest["C"] = PropC;
// Retrieve test
var a = compositeTest["A"];
var b = compositeTest["B"];
var c = compositeTest["C"];
localSettings.Values["Test"] = compositeTest;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.