У меня есть Listbox
с именами свойств типа Color из MySettings
объекта.Я хочу создать другой элемент управления (скажем, TextBox
, тип не имеет значения), который привязывается к значению имени свойства в списке.
Я в растерянности относительно того, какдостичь этого.Как и сейчас, список - это просто список строк, очевидно, он не знает об объекте MySettings
.
Одна из вещей, о которых я подумал, - это создание коллекции объектов нестандартного типа, которая каким-либо образом связывается с объектом MySettings
, и установка этого значения как ItemsSource
для ListBox
.
Я знаю, что здесь пытаюсь заново изобрести колесо, поэтому буду признателен за любые указатели, которые помогут мне начать работу.
Кодовый код, ListBox
в настоящее время определен в xaml без свойств, отличных от x:Name="listBox"
foreach (var prop in settings.GetType().GetProperties()
.Where(p => p.PropertyType == typeof(System.Drawing.Color))
.OrderBy(p => p.Name))
{
listBox.Items.Add(new ListBoxItem()
{
Content = prop.Name,
});
}
MySettings содержит несколько свойств:
[UserScopedSetting()]
[ConfigurationProperty(nameof(BackColor), DefaultValue = "GhostWhite")]
public System.Drawing.Color BackColor
{
get { return (System.Drawing.Color)base[nameof(BackColor)]; }
set
{
base[nameof(BackColor)] = value;
OnPropertyChanged();
}
}
[UserScopedSetting()]
[ConfigurationProperty(nameof(ForeColor), DefaultValue = "Black")]
public System.Drawing.Color ForeColor
{
get { return (System.Drawing.Color)base[nameof(ForeColor)]; }
set
{
base[nameof(ForeColor)] = value;
OnPropertyChanged();
}
}