在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,显示区域就会实时变化,添加相应的菜单按钮个数。

C# UserControl集合属性使用的更多相关文章

  1. WPF自定义依赖集合属性无法触发更新的问题

    通常WPF中通过继承UserControl的来快速创建自定义控件,最近项目上需要设计一个卫星星图显示控件,最终效果如下图所示.完成过程中遇到了自定义集合依赖属性无法触发更新通知的问题,在此记录一下,方 ...

  2. MongoDB学习笔记~对集合属性的操作

    回到目录 $unset清除元素 请注意在单个数组元素上使用$unset的结果可能与你设想的不一样.其结果只是将元素的值设置为null,而非删除整个元素.要想彻底删除某个数组元素,可以用$pull 和$ ...

  3. MongoDB学习笔记~Update方法更新集合属性后的怪问题

    回到目录 在对MongoDB进行封装后,对于Update更新对象里的集合属性时出现了一个现象,让人感到很恶心,人家更新前是个美丽的Array,但是更新之后集合对象变成了键值对,键是集合的类型名称,值是 ...

  4. Spring4学习笔记2-配置集合属性

    1 可使用<list> <map> <set>等来配置集合属性 2 List <!-- 配置List属性 --> <bean id="p ...

  5. Spring -配置集合属性

    1 可使用<list> <map> <set>等来配置集合属性2 List <!-- 配置List属性 --> <bean id="pe ...

  6. [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. bean中集合属性的配置

    在实际的开发中,有的bean中会有集合属性,如下: package com.sevenhu.domain; import java.util.List; /** * Created by hu on ...

  8. 7、单向一对多的关联关系(1的一方有n的一方的集合属性,n的一方却没有1的一方的引用)

    单向一对多的关联关系 具体体现:1的一方有n的一方的集合的引用,n的一方却没有1的一方的引用 举个例子:顾客Customer对订单Order是一个单向一对多的关联关系.Customer一方有对Orde ...

  9. 6、JPA_映射单向多对一的关联关系(n的一方有1的引用,1的一方没有n的集合属性)

    单向多对一的关联关系 具体体现:n的一方有1的引用,1的一方没有n的集合属性 举个例子:订单Order对顾客Customer是一个单向多对一的关联关系.Order是n的一方,有对Customer的引用 ...

随机推荐

  1. VSIX 插件右键菜单

    vs2017 插件开发 环境 WIN10 VS2017 CMMT VSIX 参考资源: vs菜单命令ID速查 https://docs.microsoft.com/zh-cn/visualstudio ...

  2. 洛谷 P4705 玩游戏 解题报告

    P4705 玩游戏 题意:给长为\(n\)的\(\{a_i\}\)和长为\(m\)的\(\{b_i\}\),设 \[ f(x)=\sum_{k\ge 0}\sum_{i=1}^n\sum_{j=1}^ ...

  3. day15-集合

    快捷键: 先定义name,age再利用快捷键生成,Alt+shift+s +c:空参 Alt+shift+s +o:有参 Alt+shift+s +r:set&get方法Ctrl+shift+ ...

  4. smtp

    新闻系统的定时通知初步有三种实用方式,1.短信 2.邮箱 3.微信 短信就不得不使用第三方平台,虽说5分一条,但耐不住量大,一天1000条的话,50元也是一笔不小的支出. 这时,邮箱和微信的优势就体现 ...

  5. Windows下VMware14黑屏

    解决方法 以管理员身份运行命令提示符,执行netsh winsock reset

  6. 纯原生JS大图轮播

    CSS部分: CSS: <style type="text/css"> #banner { position: relative; width: 500px; heig ...

  7. 洛谷P1463 反素数

    经典题了,很难想到这TM是搜索...... 题意:求[1, n]中约数最多的数中最小的. 解:我们有约数个数定理. 所以考虑通过枚举每个质因数个数来直接计算出约数个数. 然后就可以搜索了. 注意:若p ...

  8. [bzoj1717][Milk Patterns 产奶的模式]

    题目链接 思路 先求出后缀数组,并且求出LCP.二分一下长度len.check的时候就是看有没有连续的k个后缀的LCP大于len.也就是判断是不是有连续的k-1个height大于len. 代码 #in ...

  9. mybatis 直接执行sql 【我】

    Connection conn = getConnection();//            Connection conn = this.ss.getConnection(); 返回Connect ...

  10. C++对象作为返回值的问题

    #include "stdio.h" class Object{ public: int i; Object& method1(){ return *this; } }; ...