如何在Windows Phone 7中以编程方式创建ListBox.Itemtemplate,datatemplate

本文关键字:创建 方式 ListBox Itemtemplate datatemplate 编程 Windows Phone | 更新日期: 2023-09-27 17:55:23

我发现列表框的.xaml文件中有一些项模板,数据模板和绑定。有没有办法在代码隐藏中创建它?

有没有办法以编程方式创建数据模板?

这是 XAML 代码,但我需要在代码中使用 C# 而不是在 XAML 中,因为正在通过添加项模板进行动态列表框创建,数据模板

<ListBox Height="520" HorizontalAlignment="Left" Margin="0,6,0,0" Name="lstimge" VerticalAlignment="Top" Width="450" >
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image  Source="{Binding Image}" Width="150" Stretch="Uniform" HorizontalAlignment="Center" />
                            <TextBlock Text="{Binding FileName}" TextWrapping="Wrap" />
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

请给出解决方案

谢谢阿肖克

如何在Windows Phone 7中以编程方式创建ListBox.Itemtemplate,datatemplate

不能从代码生成模板 - 这只能从 XAML 完成。

如果在代码中动态生成模板 XAML,则可以按此处所述加载它。

我怀疑如果你沿着这条路走下去,你会发现自己打开了一整罐蠕虫。 作为替代方法,您可以预定义一组模板,并在运行时动态选择正确的模板,如此处所述

可以使用 XamlReader.Load 在代码隐藏中动态加载 XAML,并将其强制转换为 DataTemplate,然后再将其分配给 ItemTemplate。下面是一个示例。

您要对所有列表框使用相同的数据模板,还是也是动态生成的?如果它们都相同,则可以将其另存为资源中的样式,然后动态创建Listbox对象并应用样式。