在UserControl中,定义集合属性时,如果直接使用List是检测不到在属性框中的列表修改变化的,可以通过 ObservableCollection() 实现

1、定义类

 [Serializable]
public class Menu : INotifyPropertyChanged
{
private string _Fa; public string MenuName
{
get { return _Fa; }
set
{
if (_Fa != value)
{
_Fa = value;
RaisePropertyChangedEvent("Fa");
}
}
} private Image _Fb; public Image Image
{
get { return _Fb; }
set
{
if (_Fb != value)
{
_Fb = value;
RaisePropertyChangedEvent("Fb");
}
}
} public event PropertyChangedEventHandler PropertyChanged; private void RaisePropertyChangedEvent(string name)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(name));
}
} }

2、实现

private ObservableCollection<Menu> _menus = new ObservableCollection<Menu>();
[Browsable(true)]
[Description("菜单")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ObservableCollection<Menu> Menus
{
get { return _menus; }
set {
_menus = value;
MessageBox.Show("ceshi");//这里检测不到
}
} private void FormHeader_Load(object sender, EventArgs e)
{
GenerateUserPhoto();
Menus.CollectionChanged += Menus_CollectionChanged; ; }
private void Menus_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
flowLayoutPanel1.Controls.Clear();
for (int i = ; i < Menus.Count; i++)
{
Button button=new Button();
button.Text = Menus[i].MenuName;
flowLayoutPanel1.Controls.Add(button);
}
}

这样,在属性列表中修改Menus,显示区域就会实时变化,添加相应的菜单按钮个数。

最新文章

  1. PHP之MVC学习
  2. python-根据左右值获取城市区域编码
  3. C# ?(问号)的三个用处(转载)
  4. Spring IoC容器的设计—1—主线
  5. 重装VS2010时出现未能正确加载 &quot;radlangsvc.package,radlangsvc.vs...
  6. Xcode7真机测试
  7. 利用Excel批量高速发送电子邮件
  8. 谱聚类--SpectralClustering
  9. oracle scn浅析
  10. TP-LINK telnet远程 重启路由器(转)
  11. [转]使用Openssl的AES加密算法
  12. IOS Cell重用机制
  13. Reverse Integer 2015年6月23日
  14. JQuery.lazyload 图片延迟加载
  15. 03_Linux文件和目录
  16. Spring之ORM模块
  17. Git如何回滚代码?
  18. Go-day06
  19. Linux环境变量总结
  20. R语言实战 —— 常见问题解决方法

热门文章

  1. gulp与webpack的区别
  2. 洛谷 P3121 【[USACO15FEB]审查(黄金)Censoring (Gold)】
  3. 解决关于confluence缓慢 字体乱码 宏乱码 编辑不能贴图等问题
  4. 深挖JDK动态代理(二):JDK动态生成后的字节码分析
  5. Ecplise 快捷键笔记
  6. Runtime.getRuntime().exec(...),当参数中有空格时!
  7. 模块---hashlib、configparse、logging
  8. mybatis 的批量更新操作sql
  9. Day3--Python--字符串,for循环,迭代
  10. Codeforces Round #523 (Div. 2) D. TV Shows