#c# #devexpress #propertygrid
#c# #devexpress #propertygrid
Вопрос:
Я показываю свойство под названием «Минимальная высота» в моей propertygrid. Это значение int из класса ViewModel, в котором оно определено. Однако, когда я показываю это, я хочу, чтобы рядом с ним отображалась единица измерения ‘dip’. Однако, как только пользователь нажимает на нее для редактирования, «dip» должен исчезнуть, и редактировать следует только номер int.
Приветствия!
Ответ №1:
DevExpress имеет разные сетки свойств — одну для платформы WinForms, другую для WPF. Оба они называются PropertyGridControl , поэтому трудно догадаться, о каком из них вы говорите. Решение зависит от платформы. Я опишу оба.
В платформе WinForms DevExpress поддерживает несколько подходов к форматированию, которые могут быть применены к редакторам или к конкретным элементам сложных элементов управления. Для вашей задачи удобно использовать подход, описанный в этой статье: Как: Добавить пользовательский текст в форматированную строку. То есть свойству FormatString можно присвоить текст, подобный этому: «{0} dip». Чтобы присвоить формат конкретной строке, используйте BaseRow.Свойства строк.Отформатируйте свойство.
В WPF вы можете реализовать пользовательский преобразователь значений и присвоить его определению свойств.Настройки редактирования.Свойство DisplayTextConverter. IValueConverter.Метод Convert будет автоматически вызываться каждый раз, когда сетке свойств необходимо узнать отображаемое значение. Поместите свой код в этот метод, чтобы добавить соответствующий текст к фактическому значению.
Оба подхода изменяют текст соответствующих ячеек сетки свойств только в режиме отображения. Как только пользователь щелкнет внутри ячейки, чтобы вызвать редактор свойств, отображаемый текст будет заменен фактическим значением.