在 PropertyGrid 中显示 属性 的单位(使用 C#)

Showing the unit of a property in PropertyGrid (using C#)

我在 属性 网格中显示一个名为 "Min Height" 的 属性。它是来自定义它的 ViewModel class 的一个整数。但是,当我显示它时,我希望单位 'dip' 出现在它旁边。一旦用户点击它进行编辑,'dip' 应该消失,只有 int 数字应该被编辑。

干杯!

DevExpress 有不同的 属性 网格 - 一个用于 WinForms 平台,另一个用于 WPF。它们都被命名为 PropertyGridControl,因此很难猜出您在谈论哪一个。解决方案取决于平台。我将描述两者。

WinForms平台DevExpress支持几种Formatting Approaches that can be applied to editors or to specific elements of complex controls. For your task, it is convenient to use the approach described in this article: How to: Add Custom Text to a Formatted String. That is, you can assign the text like this to the FormatString property: "{0} dip". To assign the format to the specific row, use the BaseRow.RowProperties.Format属性.

在 WPF 中,您可以实现自定义 value converter and assign it to the PropertyDefinition.EditSettings.DisplayTextConverter 属性。每次 属性 网格需要知道显示值时,都会自动调用 IValueConverter.Convert 方法。将您的代码放入此方法中以将适当的文本添加到实际值。

这两种方法仅在显示模式下更改相应 属性 网格单元格的文本。一旦用户在单元格内单击以调用 属性 编辑器,显示文本将替换为实际值。