2011-11-20 28 views
1

我有列表框,我绑定了一个对象列表,其类型实际上是我的DataModel类,但我希望能够知道哪一个。
问题是:
我想能够搜索listBox的任何项目包含我想要的关键字。
我知道我想要搜索的属性的名称取决于它(它是DisplayMember属性)。
有什么办法可以做到这一点?如何搜索列表框而不知道它拥有哪种对象?

回答

3

我会在你的datamodel对象上实现一个自描述的ISearchable接口。

然后,您可以遍历列表框中的每个项目,并通过界面询问底层对象是否符合搜索条件。

另一种可能性是使用反射从每个记录中使用DisplayMember属性获取值,但我个人更喜欢接口方法,因为它可以在其他情况下重用。

2

你可以有你的模型类都实现一个接口

public interface IDisplayable { 
    string DisplayValue{ get; } 
} 
相关问题