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

时间:2011-05-09 06:41:57

标签: c# visual-studio-2010 windows-phone-7 listbox

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

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

这是XAML代码,但我需要在代码中使用c#而不是XAML,因为 我正在创建动态列表框,添加itemtemplatem,datatemplate

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

请提供解决方案

谢谢, 阿肖克

3 个答案:

答案 0 :(得分:5)

您无法从代码构建模板 - 这只能通过XAML完成。

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

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

答案 1 :(得分:5)

您可以使用XamlReader.Load在代码隐藏中动态加载XAML并将其转换为DataTemplate,稍后将其分配给ItemTemplate。 Here就是一个例子。

答案 2 :(得分:1)

您想对所有列表框使用相同的DataTemplate还是动态生成的?如果所有这些都相同,那么您可以将其保存为Style in your Resources,然后动态创建Listbox对象并应用样式。