使用ListBox进行Silverlight打印

时间:2011-12-27 18:30:10

标签: silverlight printing listbox

我需要打印一个带有Silverlight分页的复杂文档。我从http://silverlightreporting.codeplex.com/找到了一个很好的项目。我发现,使用这个例子,更复杂的模板工作不正确:

我添加了一个ChildNames属性:

  public class EmployeeReviewReportItem
    {
        public string LastName { get; set; }
        public string FirstName { get; set; }

        public string Street { get; set; }
        public string City { get; set; }
        public string State { get; set; }
        public string Zip { get; set; }

        public int PerformanceRating { get; set; }
        public decimal Salary { get; set; }
        public decimal Bonus { get; set; }

        public string ReviewComments { get; set; }

        public string[] ChildNames { set; get; }
}
ReportData.cs中的

为此属性设置了值:

ChildNames = new string[] { firstNames.Random(), firstNames.Random(), firstNames.Random() } 

然后在MainPage.xaml中显示一个新的ListBox来显示这个属性:

...
   <TextBlock Grid.Row="2"
                                   Grid.ColumnSpan="4"
                                   TextWrapping="Wrap"
                                   Text="{Binding ReviewComments}" />

                            <ListBox Grid.Row="3" Grid.ColumnSpan="4" ItemsSource="{Binding ChildNames}">
                             <ListBox.ItemTemplate>
                                <DataTemplate>
                                        <TextBlock Width="300"
                                                       Height="auto"
                                                       VerticalAlignment="Top"
                                                       Text="{Binding .}"
                                                       TextWrapping="Wrap" />
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>
                    </Grid>
...

ListBox将在没有内容的情况下呈现。

如何打印儿童姓名?

1 个答案:

答案 0 :(得分:0)

{Binding .}是否有效?我从未见过它(当然这并不意味着它不正确)。我只想使用{Binding}。如果这不起作用,那么您可以尝试将string[]更改为ObservableCollection<string>,并使绑定成为双向绑定:ItemsSource="{Binding ChildNames, Mode=TwoWay}"

如果没有看到完整的源代码,我实际上无法提供更多帮助。