从模板生成网格

时间:2010-12-21 14:50:46

标签: silverlight windows-phone-7

你好 我还有另外一个关于手机7的问题......我想在一个堆叠面板中生成几个网格 - 因为它们都有相同的布局,我认为使用DataTemplates是个好主意......

但后来我发现GRID对象没有“DataTemplate”属性,现在我有点卡住......我使用的模板如下:

        <DataTemplate x:Key="Speise">
            <Grid>
                <TextBlock Height="36" Margin="8,43,104,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top"/>
                <TextBlock HorizontalAlignment="Right" Height="36" Margin="0,44,8,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Width="92"/>
            </Grid>
        </DataTemplate>

我现在想到创建对象的方式是:

Grid blubber =(Grid)this.Resources [“Speise”];

但这不起作用......我认为这又是一个非常短暂的事情,但我不知道如何谷歌为它:(

2 个答案:

答案 0 :(得分:0)

在手机上,网格不支持数据模板,因为它纯粹是用作布局的容器。

在手机之外,Silverlight有一个DataGrid类,您可以使用这种方式,但它在WP7上不可用。

如果您想要一种生成大型网格的简单方法,您可以查看使用嵌套循环在代码中生成内容以创建行和列。如果不确切地知道你想要达到的目标,就很难进一步提出建议。

此外,在您的示例DataTemplate中,您使用网格只是为了容纳2个TextBlocks。这似乎过于复杂。 StackPanel(或其他东西)不是更合适吗?

答案 1 :(得分:0)

您可以使用ListBox作为容器而不是StackPanel。它支持DataTemplate,如您所见。

binding a Linq datasource to a listbox