Как показать одинаковые значения в пользовательских полях в сетке свойств? - PullRequest
2 голосов
/ 05 марта 2009

У меня есть таблица свойств, которая помогает мне управлять всеми элементами управления в форме. Эти элементы управления предназначены для людей дизайнерского типа, поэтому я не очень беспокоюсь о пользовательском интерфейсе ... пока кто-то не выберет несколько объектов.

У меня есть UITypeEditor для свойства "BottomDiameter" на этих общих объектах. Он отслеживает единицы (метры против футов) и делает некоторые приятные вещи на лету. Однако, когда кто-то выбирает два или три общих объекта, BottomDiameter остается пустым, даже если он оценивает одну и ту же текстовую строку.

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

ОБНОВЛЕНИЕ: Например, свойство «Якорь» имеет текстовый вывод «Вверх, вправо», но когда вы опускаете его, это объект. Тем не менее, когда вы выбираете пять объектов в вашей форме, которые имеют одинаковую настройку привязки, вы все равно можете увидеть строку «Вверху, справа» в сетке свойств.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2009

Если ваш BottomDiameter является классом, а не простым примитивом, то вы должны переопределить метод Equals в этом классе.

0 голосов
/ 05 марта 2009

В TypeConvertor типа данных, который присваивается свойству BottomDiameter, вы можете создать класс, похожий на vistor, называемый say, BottomDiameterVistor, который будет принимать массив или список выбранных параметров BottomDiameter. Переопределите свойство to string в BottomDiameterVistor, чтобы вернуть ваше агрегированное текстовое значение для свойства.

...