0

我有一个列表框,我需要重复样式以使所有列表框项目都相同。只有占位符会改变。例如,以下列表框项具有三个元素 - 图像、标题文本和描述文本。我已经设计好了。现在我需要为我遵循的列表框项应用相同的样式。目前我正在为所有不正确的项目进行复制粘贴。

在此处输入图像描述

我可以通过 ListBoxTemplate 和 DataTemplate 做到这一点,但我需要在 .cs 文件中编写我不想写的代码。帮我如何实现模板效果?

这是上述列表框项的代码。

<ListBoxItem>
    <Grid Height="80">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="80"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Image Grid.Column="0" Source="/Images/dark/appbar.magnify.png"/>
        <StackPanel Grid.Column="1">
            <TextBlock Text="Item heading" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
            <TextBlock Text="item description" TextWrapping="Wrap" Style="{StaticResource PhoneTextSubtleStyle}"/>
        </StackPanel>
    </Grid>
</ListBoxItem>

我需要在我添加的所有列表框项中的图像、标题文本和内容文本的占位符。如何做到这一点?

4

3 回答 3

2

这就是你如何实现它:

<Page.Resources>
    <DataTemplate  x:Key="ListTemplate">
        <Grid Height="80">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="80"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Image Grid.Column="0" Source="/Images/dark/appbar.magnify.png"/>
            <StackPanel Grid.Column="1">
                <TextBlock Text="{Binding ItemHeading}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                <TextBlock Text="{Binding ItemDescription}" TextWrapping="Wrap" Style="{StaticResource PhoneTextSubtleStyle}"/>
            </StackPanel>
        </Grid>
    </DataTemplate>
</Page.Resources>
<Grid>
    <ListBox ItemTemplate="{StaticResource ListTemplate}" ItemsSource="{Binding YourList}">


    </ListBox>
</Grid>

您可以将资源放在 App.XAML 中,以便所有页面都可以访问它,并且可以在应用程序中的所有 ListBox 上使用它。请注意,YourList中的元素应具有ItemHeaderItemDescription属性

于 2012-07-03T09:18:21.637 回答
0

创建/使用ListItem ItemTemplate

于 2012-07-03T09:10:04.660 回答
0

您可以像这样创建数据项模板

<DataTemplate x:Key="DataTemplate1">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="auto"/>
                    <ColumnDefinition Width="auto"/>
                    <ColumnDefinition Width="auto"/>
                </Grid.ColumnDefinitions>
                <Image Grid.Column="0" Source="{Binding Image}" Width="10" Height="10"/>
                <TextBlock Grid.Column="1" Text="{Binding ID}"/>
                <TextBlock Grid.Column="2" Text="{Binding content}"/>
            </Grid>
        </DataTemplate>

然后将此数据模板绑定到列表,然后将项目绑定到列表.. :) 你可以将列表集合与类绑定

您可以创建一个包含三个变量 image、id 和 content 的类,以便您可以列出该类并绑定到该列表

于 2012-07-03T09:46:16.310 回答