Я только что попробовал это в приложении Windows Forms, и оно отлично работает. Вот мое приложение:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
propertyGrid1.SelectedObject = new Foo();
}
}
public class Foo {
[DefaultValue("foo")]
public string MyString { get; set; }
[DefaultValue(typeof(Color), "209 , 175, 171")]
public Color MyColor { get; set; }
}
И моя форма является формой по умолчанию с элементом управления PropertyGrid
.
Когда цвет установлен на 209,175,171, он отображается в обычном тексте. Если я изменю любое значение, оно будет выделено жирным шрифтом. Точно так же, когда для строки задан любой текст, она выделяется жирным шрифтом, а когда я задаю для нее значение «foo», она отображается в обычном тексте.
со значениями не по умолчанию:
со значениями по умолчанию: