1

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

说,我们有基类:

class BaseItem
{
}

然后还有两个:

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

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

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

4

1 回答 1

3

当然这是可能的。

只需在 ListBox 资源中DataTemplate为每个定义一个:Type

<DataTemplate DataType="{x:Type IntItem}">
    ....
</DataTemplate>
<DataTemplate DataType="{x:Type StringItem}">
    ....
</DataTemplate>
于 2013-11-13T17:11:32.323 回答