коллекция печати Дэвидполла - PullRequest
0 голосов
/ 06 сентября 2010

Я пытаюсь использовать элемент управления printcollection Дэвида Полла из проекта SLaB - www.davidpoll.com, но по какой-то причине элементы не отображаются. Может быть, это что-то с моим itemtemplate, пожалуйста, посмотрите на это:

 <Style x:Key="PrintStyle"
    TargetType="SLaB:CollectionPrinter">
        <Setter Property="ItemTemplate">
            <Setter.Value>
                <DataTemplate>
                        <Grid>
                        <sdk:Label x:Name="lblTitle" HorizontalAlignment="Left" Margin="0,8,0,0" VerticalAlignment="Top" Content="{Binding Source={StaticResource ResourceWrapper}, Path=NoteEditorResources.Title}"/>
                        <sdk:Label x:Name="lblTitleResult" HorizontalAlignment="Left" Margin="42,8,0,0" VerticalAlignment="Top" Content="{Binding Path=Title}"/>
                        <sdk:Label x:Name="lblDateCreated" HorizontalAlignment="Right" Margin="0,8,156,0" VerticalAlignment="Top" Content="{Binding Source={StaticResource ResourceWrapper}, Path=NoteEditorResources.DateCreated}"/>
                        <sdk:Label x:Name="lblDateCreatedResult" HorizontalAlignment="Right" Margin="0,8,113,0" VerticalAlignment="Top" Content="{Binding Path=DateCreated}"/>
                        <RichTextBox x:Name="rtbContent" Margin="0,28,0,8" Width="582" Xaml="{Binding Content}" />
                        </Grid>
                </DataTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="HeaderTemplate">
            <Setter.Value>
                <DataTemplate>
                <StackPanel HorizontalAlignment="Stretch">
                    <StackPanel HorizontalAlignment="Right"
                    Orientation="Horizontal">
                        <TextBlock Text="{Binding CurrentPage, StringFormat='{}Page {0} '}" />
                        <TextBlock Text="{Binding PageCount, StringFormat='{}/ {0}'}" />
                    </StackPanel>
                </StackPanel>
            </DataTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="FooterTemplate">
            <Setter.Value>
                 <DataTemplate>
                <StackPanel HorizontalAlignment="Center"
                Orientation="Horizontal">
                    <TextBlock Text="{Binding FirstItemValue.Name}" />
                    <TextBlock Text=" - " />
                    <TextBlock Text="{Binding LastItemValue.Name}" />
                </StackPanel>
            </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>

1 Ответ

0 голосов
/ 16 сентября 2010

Я использовал его контроль печати, но я никогда не изменял шаблон элемента.Я использовал его TestPrinter.xaml в качестве шаблона и заполнил свой код HeaderTemplate, FooterTemplate и BodyTemplate.

BodyTemplate является важным для изучения.Вот раздел BodyTemplate из его примера:

<Printing:CollectionPrinter.BodyTemplate>
    <DataTemplate>
        <sdk:DataGrid ItemsSource="{Binding CurrentItems}"
                      AutoGenerateColumns="False"
                      VerticalScrollBarVisibility="Disabled">
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn Binding="{Binding Name}"
                                        Header="Name" />
                <sdk:DataGridTextColumn Binding="{Binding Address}"
                                        Header="Address" />
                <sdk:DataGridTextColumn Binding="{Binding Age}"
                                        Header="Age" />
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>
    </DataTemplate>
</Printing:CollectionPrinter.BodyTemplate>

Важно установить CurrentItems в качестве источника для вашего элемента управления, который будет использоваться для отображения вашей коллекции.Таким образом, он может автоматически рассчитать, сколько элементов нужно отобразить на странице, прежде чем они будут обрезаны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...