在WPF中的ListBox中显示不同类型的项目

时间:2013-11-13 17:07:46

标签: c# wpf listbox listboxitem

是否可以根据项目类型为WPF中的ListBox中的项目使用不同的模板?

说,我们有基类:

class BaseItem
{
}

然后还有两个:

class IntItem : BaseItem
{
     public int I { get; set; }
}

class StringItem : BaseItem
{
     public string S { get; set; }
}

然后,我可以构建一个ObservableCollection BaseItem并附加到ListBox。我想将文本显示为文本框,将整数显示为跟踪器。可能吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:3)

当然这是可能的。

只需为ListBox资源中的每个DataTemplate定义Type

<DataTemplate DataType="{x:Type IntItem}">
    ....
</DataTemplate>
<DataTemplate DataType="{x:Type StringItem}">
    ....
</DataTemplate>