0

Я пытаюсь показать атрибуты XmlElement в Xceed PropertyGrid. Для этой цели я определил пользовательский класс оболочки. Он обертывает XmlElement, итерации по XmlAttributes и создает собственный PropertyDescriptor для каждого XmlAttribute. Все типы «виртуальных» свойств - String. Все работает нормально. Теперь я хочу иметь раскрывающийся список возможных значений атрибутов для каждого атрибута, который имеет ограниченный набор значений. В Xceed's PropertyGrid для этого есть ItemsSourceAttribute. Но он должен применяться следующим образом:WPFExtendedToolkit PropertyGrid Стандартные значения

ItemsSourceAttribute(typeof(MyCustomItemsSource)) 

А вот проблема - я не могу обеспечить надлежащий аргумент для MyCustomItemsSource конструктора. Что я могу сделать по этому поводу?

Похоже, что существует еще одна возможность - определить TypeConverter, переопределить GetStandardValues ​​и передать этот конвертер в «виртуальное» свойство. Но PropertyGrid просто игнорирует этот атрибут.

Как эта простая задача может быть выполнена с помощью Xceed PropertyGrid?

ответ

0

Решено. Я реализовал собственный редактор

public class AttributeValuesEditor: Xceed.Wpf.Toolkit.PropertyGrid.Editors.ComboBoxEditor 
{ 
    protected override IEnumerable CreateItemsSource(PropertyItem propertyItem) 
    { 
     var property = propertyItem.PropertyDescriptor as XmlAttributePropertyDescriptor; 
     Debug.Assert(property!=null); 
     return property.GetCompletionValues(); 
    } 
} 

Здесь контекст передается в метод в виде PropertyItem. Теперь можно различать разные атрибуты и возвращать соответствующие элементы.

 Смежные вопросы

  • Нет связанных вопросов^_^