是否可以根据项目类型为WPF中的ListBox中的项目使用不同的模板?
说,我们有基类:
class BaseItem
{
}
然后还有两个:
class IntItem : BaseItem
{
public int I { get; set; }
}
class StringItem : BaseItem
{
public string S { get; set; }
}
然后,我可以构建一个ObservableCollection
BaseItem
并附加到ListBox。我想将文本显示为文本框,将整数显示为跟踪器。可能吗?如果是这样,我该怎么做?
答案 0 :(得分:3)
当然这是可能的。
只需为ListBox资源中的每个DataTemplate
定义Type
:
<DataTemplate DataType="{x:Type IntItem}">
....
</DataTemplate>
<DataTemplate DataType="{x:Type StringItem}">
....
</DataTemplate>