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

时间:2016-10-21 09:54:36

标签: c# devexpress propertygrid

我正在展示一个名为" Min Height"在我的propertygrid中。它是定义它的ViewModel类中的一个int。然而,当我展示它时,我希望这个单元“dip'出现在它旁边。只要用户点击它进行编辑,就可以“dip'应该消失,只有int编号才能被编辑。

干杯!

1 个答案:

答案 0 :(得分:1)

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

在WinForms平台中,DevExpress支持多个Formatting Approaches,可以应用于编辑器或复杂控件的特定元素。对于您的任务,使用本文中描述的方法很方便:How to: Add Custom Text to a Formatted String。也就是说,您可以将这样的文本分配给FormatString属性:" {0} dip"。要将格式指定给特定行,请使用BaseRow.RowProperties.Format属性。

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

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