0

ListBox があり、すべてのリストボックス項目で同じになるようにスタイルを繰り返す必要があります。プレースホルダーのみが変更されます。たとえば、次のリストボックス項目には、画像、ヘッダー テキスト、および説明テキストの 3 つの要素があります。スタイリングさせて頂きました。ここで、フォローするリストボックス項目に同じスタイルを適用する必要があります。現在、私は正しい方法ではないすべての項目をコピーして貼り付けています。

ここに画像の説明を入力

ListBoxTemplate と DataTemplate を介してこれを行うことができますが、コードを .cs ファイルに書き込む必要はありません。テンプレート効果を実現する方法を教えてください。

上記の listboxitem のコードは次のとおりです。

<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に配置して、すべてのページからアクセスできるようにし、アプリケーションのすべてのリストボックスで使用できるようにすることができます。YourListの要素にはItemHeaderプロパティとItemDescriptionプロパティが必要であることに注意してください

于 2012-07-03T09:18:21.637 に答える
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 の 3 つの変数を持つクラスを作成できます。

于 2012-07-03T09:46:16.310 に答える
0

作成/使用ListItem ItemTemplate

于 2012-07-03T09:10:04.660 に答える