Я следил за Trouble saving a collection of objects in Application Settings, чтобы сохранить мой ObservableCollection пользовательских объектов, привязанных к DataGrid в настройках приложения, но данные не сохраняются в user.config, как и другие настройки. Может кто-нибудь мне помочь? Спасибо!Сохранение коллекции пользовательских объектов в настройках приложения
Мои пользовательские классы:
[Serializable()]
public class ActuatorParameter
{
public ActuatorParameter()
{}
public string caption { get; set; }
public int value { get; set; }
public IntRange range { get; set; }
public int defaultValue { get; set; }
}
и
[Serializable()]
public class IntRange
{
public int Max { get; set; }
public int Min { get; set; }
public IntRange(int min, int max)
{
Max = max;
Min = min;
}
public bool isInRange(int value)
{
if (value < Min || value > Max)
return true;
else
return false;
}
}
сбора мусора и сохранить:
Settings.Default.pi_parameters = new ObservableCollection<ActuatorParameter>
{
new ActuatorParameter() { caption = "Velocity", range = new IntRange(1, 100000), defaultValue = 90000},
new ActuatorParameter() { caption = "Acceleration", range = new IntRange(1000, 1200000), defaultValue = 600000},
new ActuatorParameter() { caption = "P-Term", range = new IntRange(150, 350), defaultValue = 320},
new ActuatorParameter() { caption = "I-Term", range = new IntRange(0, 60), defaultValue = 30},
new ActuatorParameter() { caption = "D-Term", range = new IntRange(0, 1200), defaultValue = 500},
new ActuatorParameter() { caption = "I-Limit", range = new IntRange(0, 1000000), defaultValue = 2000}
};
Settings.Default.Save();
Мой заказ установка:
internal sealed partial class Settings
{
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public ObservableCollection<ActuatorParameter> pi_parameters
{
get
{
return ((ObservableCollection<ActuatorParameter>)(this["pi_parameters"]));
}
set
{
this["pi_parameters"] = value;
}
}
}