匿名UIElements的ListBox

时间:2013-08-16 21:27:54

标签: c# wpf silverlight listbox uielement

我想创建一个ListBox并用匿名UIElement填充它。换句话说,DataTemplate的{​​{1}}将只包含一个元素,并且在运行时期间之后,我将在不同ItemTemplate s(UIElement后面的代码中创建s,TextBlock s ...)并用它填充列表。

那我怎么写Grid的{​​{1}}?我打算如何使用DataTemplate作为ListBox?那么应该使用ObservableCollection的{​​{1}}?

2 个答案:

答案 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>