WPF - 如何重用列表框来显示不同的对象列表?

时间:2010-10-21 18:33:26

标签: c# wpf data-binding binding

我有一个ListBox,我用它来显示各种搜索的结果。这些搜索可能发生在许多不同类型的对象上,我在使用它在所有情况下都有点麻烦。

大多数时候我只能设置ListBox.ItemSource = List,如果我还设置了DisplayMemberPath和SelectedValuePath,它的工作正常。当我想为给定对象显示的字符串实际上是一种方法或一组属性时,我遇到了麻烦。

有人可以指出我正确的方向来解决这个问题吗?

谢谢,
桑尼

2 个答案:

答案 0 :(得分:1)

我可以想到几个选项。

  1. 为列表框中的每个对象创建一个datatemplate
  2. 创建一个包装类并将列表框绑定到这些包装类的列表。为每个可能的搜索结果类创建构造函数(或其他方法)需要一些工作。

答案 1 :(得分:0)

有趣的是,我刚刚就DataGrid问了一个非常相似的question

您可以为每种类型的搜索对象创建ListBoxItem个对象的自定义集合,并在运行时将这些项添加到ListBox

List<ListBoxItem> lbiTest = GetListBoxItems();
foreach (ListBoxItem lbi in lbiTest)
{  
  lbMyListBox.Items.Add(lbi);
}