ListBox of anonymous UIElements

本文关键字:UIElements anonymous of ListBox | 更新日期: 2023-09-27 18:27:56

我想创建一个ListBox并用匿名UIElement填充它。换句话说,ItemTemplateDataTemplate将只包含一个元素,并且在运行时的后记中,之后我将在不同的UIElements(TextBlocks,Grids…)后面的代码中创建并用它填充列表。

那么我该如何写ListBoxDataTemplate呢?我打算如何将ObservableCollection用于ItemSource?那么应该使用UIElement中的ObsevableCollection吗?

ListBox of anonymous UIElements

第一个问题:DataTemplate。由于您的物品已经是UIElement,因此您不需要DataTemplate

如果你正在创建一个可更改的集合,那么是的,ObservableCollection<UIElement>就是你的选择。

现在,为什么你会这么做?你可能想问问自己,这是否是最好的做事方式。为什么您的数据和演示文稿没有分开?如果您需要列表中的不止一种类型的元素,DataTemplateSelector会允许您拥有真正的ViewModel吗?

    <ListBox x:Name="name" ItemsSource="{Binding source}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <textbox x:Name="name"></ToggleButton> //or any tool
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>