Как показать одинаковые значения в пользовательских полях в сетке свойств?

StackOverflow https://stackoverflow.com/questions/612820

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top