博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# UserControl集合属性使用
阅读量:4663 次
发布时间:2019-06-09

本文共 1986 字,大约阅读时间需要 6 分钟。

在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
_menus = new ObservableCollection
();
[Browsable(true)][Description("菜单")][DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]public ObservableCollection
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 = 0; i < Menus.Count; i++) { Button button=new Button(); button.Text = Menus[i].MenuName; flowLayoutPanel1.Controls.Add(button); }}

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

 

转载于:https://www.cnblogs.com/zhaogaojian/p/8630527.html

你可能感兴趣的文章
编写jquery插件
查看>>
敏捷开发笔记
查看>>
神秘海域:顶级工作室“顽皮狗”成长史(下)
查看>>
C++指针、引用知多少?
查看>>
services 系统服务的启动、停止、卸载
查看>>
Fiddler 网页采集抓包利器__手机app抓包
查看>>
Number and String
查看>>
java中的值传递和引用传递2<原文:http://blog.csdn.net/niuniu20008/article/details/2953785>...
查看>>
css实现背景图片模糊
查看>>
什么是runtime?什么是webgl?
查看>>
秋季学习总结
查看>>
categorical_crossentropy VS. sparse_categorical_crossentropy
查看>>
强引用,弱引用,4种Java引用浅解(涉及jvm垃圾回收)
查看>>
多线程如何确定线程数
查看>>
UGUI RectTransform
查看>>
学前班
查看>>
手把手教您扩展虚拟内存
查看>>
android-samples-mvp
查看>>
oracle 11g r2安装
查看>>
关于自关联1
查看>>