我定义了具有一些属性的AppSettings
类。在我的表单中,当我click Button1
时,我想要显示属性1和2(1,2显示,其他属性隐藏或不显示),当click Button2
时,我想要显示属性2和3( 1是隐藏,2,3是显示,其他属性是隐藏或不显示),我该怎么办?
public class AppSettings
{
[BrowsableAttribute(true), CategoryAttribute("Document Settings"), DefaultValueAttribute(true)]
public bool SaveOnClose{ get; set; }
[BrowsableAttribute(true), CategoryAttribute("Global Settings"), ReadOnlyAttribute(true), DefaultValueAttribute("Welcome to AppDev!")]
public string GreetingText { get; set; }
[BrowsableAttribute(true), DescriptionAttribute("The rate in milliseconds that the text will repeat."), CategoryAttribute("Global Settings"), DefaultValueAttribute(10)]
public int MaxRepeatRate { get; set; }
[BrowsableAttribute(true), CategoryAttribute("Global Settings"), DefaultValueAttribute(4)]
public int ItemsInMRUList { get; set; }
[BrowsableAttribute(true), DefaultValueAttribute(false)]
public bool SettingsChanged { get; set; }
[BrowsableAttribute(true), CategoryAttribute("Version"), DefaultValueAttribute("1.0"), ReadOnlyAttribute(true)]
public string AppVersion { get; set; }
}
我希望动态更改BrowseAttribute
为true或false。我该怎么办?
表格代码是:
AppSettings AppSet = new AppSettings();
AppSet.AppVersion = "2.3";
AppSet.SaveOnClose = true;
AppSet.GreetingText = "Welcome to Dar!";
AppSet.ItemsInMRUList = 4;
AppSet.MaxRepeatRate = 10;
AppSet.SettingsChanged = false;
...
propertyGrid1.SelectedObject = AppSet;
此更改有错误:
public static bool state = true;
BrowsableAttribute(state)
错误:
属性参数必须是常量表达式,typeof表达式 或属性参数类型
的数组创建表达式
答案 0 :(得分:6)
对于过滤,我只会更改BrowsableAttributes
的{{1}}。在下面,我:
PropertyGrid
,该属性描述何时应该可见的内容
[DisplayMode(...)]
以指示何时应将属性视为等效IsMatch
上的部分设置
AppSettings
,指定特定的BrowsableAttributes
,然后显示以下是代码:
DisplayModeAttribute