У меня есть класс, который выглядит следующим образом:Установка PropertyGrid.SelectedObject во время выполнения
public class DashWidgetParameter
{
public string Name { get; set; }
public Type ValueType { get; set; }
public object Value { get; set; }
public DashWidgetParameter(string ParameterName, Type ParameterType, object Value)
{
this.Name = ParameterName;
this.ValueType = ParameterType;
this.Value = Value;
}
}
Этот класс используется некоторыми другими объектами в моем приложении для хранения своих соответствующих параметров. Каждый объект имеет линию
List<DashWidgetParameter> Parameters = new List<DashWidgetParameter>();
следуют несколько строк, подобные этим:
paramList.Add(new DashWidgetParameter("Item Type", typeof(int), 40));
paramList.Add(new DashWidgetParameter("Status Categories", typeof(List<string>), new List<string> { "New", "Configured", "Processed" }));
Эти последние несколько строк различны для каждого объекта, так что я не мог определить один класс с заданным списком свойств ,
Я хотел бы предоставить визуальный способ для пользователя редактировать значения параметров для каждого из этих объектов, и я надеялся, что смогу использовать элемент управления PropertyGrid
, но я изо всех сил пытаюсь заставить его работать.
Я не есть объект, который можно установить в PropertyGrid.SelectedObject
и неудивительно, если установить его в Parameters
(определенный выше как List<DashWidgetParameter> Parameters
) PropertyGrid
содержит только два свойства, Count
и Capacity
.
Не могу ли я пройти через список Parameters
и добавить их по одному на PropertyGrid
?
Я не понимаю, как это было бы решением. Если я это сделаю, свойство PropertyGrid будет иметь только одно свойство, называемое Parameters. –
@DewaldSwanepoel Да, и вы получите кнопку (с многоточием), чтобы вызвать список элементов. Просто попробуйте и убедитесь, что он соответствует вашим потребностям. – romanoza
ОК, я пробовал, и это действительно не то, что мне нужно. Прежде всего, как я подозревал, он дает одно свойство в PropertyGrid с именем «Параметры». Если я нажимаю на эллипсы значения (Collection), он выводит редактор коллекций, показывающий разные свойства как члены, и единственным «свойством» для каждого члена, который может быть фактически изменен, является имя, а не значение. –