我想创建一个ListBox
并用匿名UIElement
填充它。换句话说,DataTemplate
的{{1}}将只包含一个元素,并且在运行时期间之后,我将在不同ItemTemplate
s(UIElement
后面的代码中创建s,TextBlock
s ...)并用它填充列表。
那我怎么写Grid
的{{1}}?我打算如何使用DataTemplate
作为ListBox
?那么应该使用ObservableCollection
的{{1}}?
答案 0 :(得分:2)
第一个问题:否 DataTemplate
。由于您的商品已经UIElement
,因此您不需要DataTemplate
。
如果你正在创建一个可更改的集合,那么是的,ObservableCollection<UIElement>
是可行的方法。
现在,为什么你会这样做?您可能想问自己这是否是最好的做事方式。为什么您的数据和演示文稿没有分开?如果列表中需要多种元素,DataTemplateSelector
会允许您拥有真实的ViewModel
吗?
答案 1 :(得分:0)
<ListBox x:Name="name" ItemsSource="{Binding source}">
<ListBox.ItemTemplate>
<DataTemplate>
<textbox x:Name="name"></ToggleButton> //or any tool
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>