我们当前正在使用Xceed PropertyGrid
控件来显示应用程序的打印设置。这是我们正在使用的类的摘录:
public class ReportOptions {
public FontOptions FontOptions { get; } = new FontOptions();
public PageOptions PageOptions { get; } = new PageOptions();
}
[ExpandableObject]
public class FontOptions {
public string FontName { get; set; } = "Times New Roman";
public double HeadingFontSize { get; set; } = 14.0;
public double BodyFontSize { get; set; } = 12.0;
}
[ExpandableObject]
public class PageOptions{
[ExpandableObject]
public Thickness Margins { get; set; } = new Thickness(0.5, 1.0, 0.5, 1.0);
[ExpandableObject]
public Size Size { get; set; } = new Size(8.5,11.0);
}
我们遇到的问题是Size
类具有一个只读的IsEmpty
属性,我们希望将其隐藏在PropertyGrid
中。
由于我们正在使用网格的自动生成的属性,并且由于我们不“拥有” Size
类,因此我们不确定如何装饰该属性以将其隐藏。
我们尝试使用PreparePropertyItem
,但是PropertyItem.IsVisible
是只读的。
那么我们如何隐藏该属性而不必手动定义所有属性? (同样,这只是实际课程的一小部分摘录。
答案 0 :(得分:0)
您需要Browsable(false)属性才能从PropertyGrid中隐藏某些内容。如果需要在运行时设置属性,则可能需要研究类似DynamicTypeDescriptor