博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何实现自定义的DataSource
阅读量:5822 次
发布时间:2019-06-18

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

有时候我们希望能自己写一个component,并可以像DataSet、那样可以在设计时可以显示出其中的collection, 以及collection中的可绑定的属性。一下提供了一个简要的介绍:

IListSource,如果你的component本身不是一个Collection(本身不实现IList 或IBindingList)的话,你可以用这个接口返回一个实现该collection的IList .一个典型的例子就是DataSet。
ITypedList, 该接口用于返回需要显示在binding list picker中的属性。
一个简单的例子(摘自一个component,它实现了ITypedList, IBindingList).

#region ITypedList Members<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

public PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors)

{

     MessageBox.Show("sdfasf");

     // TODO:  Add UserControl1.GetItemProperties implementation

     PropertyDescriptorCollection col = TypeDescriptor.GetProperties(this);

     PropertyDescriptorCollection colnew = new PropertyDescriptorCollection(null);

     MyBindableAttribute myAttr = new MyBindableAttribute();

     foreach(PropertyDescriptor prop in col)

     {

         if (prop.Attributes.Contains(myAttr))

              colnew.Add(prop);

     }

     return colnew;

 

}

 

public string GetListName(PropertyDescriptor[] listAccessors)

{

     MessageBox.Show("GetListName");

     // TODO:  Add UserControl1.GetListName implementation

     foreach(PropertyDescriptor prop in listAccessors)

         MessageBox.Show(prop.DisplayName);

     MessageBox.Show("GetListName");

 

     return "Hello";

}

 

#endregion

 

class MyBindableAttribute : Attribute {}

 

 

[MyBindable]

public string Text

{

     get  {return string.Empty;}

}

 

转载于:https://www.cnblogs.com/jonnyyu/archive/2004/02/03/763.html

你可能感兴趣的文章
面试小抄 - react
查看>>
二. js语法结构
查看>>
Go Web轻量级框架Gin学习系列:数据绑定
查看>>
Dubbo 一些你不一定知道但是很好用的功能
查看>>
k8s拾遗 - ConfigMap
查看>>
好程序员精讲 java设计模式—享元模式
查看>>
iOS-第一次安装cocoapods很慢或出错怎么办?Unable to add a source with url https://github.com......
查看>>
javascript全栈开发实践-web-5
查看>>
小程序自定义tabbar
查看>>
小程序封装工具-showModal
查看>>
使用组合的设计模式 —— 追女孩要用的远程代理模式
查看>>
自定义九宫格解锁控件
查看>>
ES5-String-match/search/replace/split
查看>>
18届校招高薪榜单流出,第一年薪56万!哪个岗位这么多金?
查看>>
调用后端的下载表格接口
查看>>
开源大数据周刊-第5期
查看>>
Java反射 类对象
查看>>
iOS 在Xib中给验证码Button添加边框并实现验证码倒计时效果
查看>>
蜜蜂自定义相册+图片选择、裁剪、多选
查看>>
服务器状态码概览
查看>>