我的程序有一个功能,可以使用here方法保存复合设置。我想要做的就是这样我可以使用文本框在程序中创建复合设置的名称,然后检索设置来自组合框的那个名字。这是我到目前为止使用的代码:
这是设置的类:
class settings
{
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
public void storeSetting(string key, string value)
{
localSettings.Values[key] = value;
}
public void storeSetting(string key, int value)
{
localSettings.Values[key] = value;
}
public void storeSetting(string key, ApplicationDataCompositeValue value)
{
localSettings.Values[key] = value;
}
public object loadSettings(string key)
{
if (localSettings.Values[key] != null)
{
return localSettings.Values[key];
}
else
{
return null;
}
}
public void removeSetting(string key)
{
localSettings.Values.Remove(key);
}
}
以下是我用来保存设置的代码:
ApplicationDataCompositeValue composite = new ApplicationDataCompositeValue();
for (int i = 0; i < BUFSIZE; i++)
{
composite["sb" + i] = serial_buffer[i];
}
var storageHelper = new settings();
storageHelper.storeSetting(presetinput.Text, composite);
presets.Items.Add(presetinput.Text);
这是我用来加载设置的代码:
var storageHelper = new settings();
ApplicationDataCompositeValue composite = (ApplicationDataCompositeValue)storageHelper.loadSettings(presets.SelectedItem.ToString());
此代码工作正常,但是我填充预设组合框的方式存在问题。我需要一种方法来使用已经保存的设置的名称来填充组合框,这样当我关闭并打开程序时我可以重新填充它,我不知道该怎么做。有没有办法获取已创建的已保存设置的名称?感谢。
答案 0 :(得分:0)
有没有办法获取已创建的已保存设置的名称?
我们可以使用以下代码来检索已保存设置的名称。
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
var keys = localSettings.Values.Keys;
List<string> list = keys.ToList();
ApplicationDataContainer.Values属性返回设置容器中的设置,其类型为IPropertySet,这是一个继承IObservableMap<String, Object>
,IDictionary<String, Object>
和IEnumerable<KeyValuePair>
接口的接口。因此我们可以使用IDictionary<TKey, TValue>.Keys
属性来获取所有密钥。然后我们可以使用ToList
方法获取已保存设置的名称列表。