C # propertyGrid разные вопросы о свойствах

У меня есть несколько вопросов о свойствах, отображаемых в propertyGrid, на которые я не могу найти ответы:

1) Что мне делать, если моя собственность относится к классу? Когда редактируется несколько объектов, происходят странные вещи (когда свойство является структурным или простым типом, все в порядке, но если свойство является классом, оно передает ссылку на один и тот же класс всем отредактированным членам, когда применяется значение, что, очевидно, ужасно, и оно не распознает два класса с идентичными членами, потому что у них разные ссылки и т. д.)

2) Как изменить размер настраиваемого выпадающего меню редактора, созданного для свойства?

3) Могу ли я как-то различать пустое значение и отсутствие значения, когда несколько объектов имеют разные значения? Вот так

  • если я выбрал 2 объекта с одинаковым свойством "name", будет отображаться имя: TEXT
  • если я выбрал 2 объекта с "name" = "", будет отображаться имя:
  • если я выбрал 2 объекта с разными «именами», то будет отображаться имя:

4) Как мне показать что-нибудь, когда значение пусто? Он должен исчезнуть, когда пользователь начнет редактирование! Например, у меня есть свойство «name», и если оно пустое, в сетке свойств должно отображаться ‹>, но как только пользователь щелкает для редактирования, когда появляется курсор,‹> должно исчезнуть.


person Istrebitel    schedule 28.03.2012    source источник


Ответы (1)


Хороший пример реализации настраиваемого редактора для сетки свойств в MSDN: http://msdn.microsoft.com/en-us/library/ms171840.aspx

и отличная статья о том, как реализовать настраиваемый раскрывающийся список, например раскрывающийся список с элементами контрольного списка в кодовом проекте: http://www.codeproject.com/Articles/21085/CheckBox-ComboBox-Exnding-the-ComboBox-Class-and

Если вы объедините две статьи, все готово;)

Привет,

person Mario Fraiß    schedule 28.03.2012
comment
Спасибо, мне удалось преобразовать VB в C # из статьи, и мне удалось запустить ее, теперь у меня есть несколько разных вопросов, я думаю, что обновлю эту тему, чтобы не порождать еще одну ... - person Istrebitel; 29.03.2012
comment
Отлично, что я смог вам помочь :) - person Mario Fraiß; 01.04.2012