关闭应用程序后未保存复合设置值
Composite Setting Values not Saved after Closing the App
保存功能结束时,复合设置已正确保存和检索。但是,在关闭 Visual Studio 运行 时间实例并再次 运行ning 项目后,复合值恢复为默认值。这里可能有什么问题?
保存
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"];
}
建造
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"];
}
}
您需要将复合设置添加到 LocalSettings
的值 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"];
}
编辑: 尝试重置 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;
}
保存功能结束时,复合设置已正确保存和检索。但是,在关闭 Visual Studio 运行 时间实例并再次 运行ning 项目后,复合值恢复为默认值。这里可能有什么问题?
保存
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"];
}
建造
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"];
}
}
您需要将复合设置添加到 LocalSettings
的值 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"];
}
编辑: 尝试重置 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;
}