我需要打印一个带有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将在没有内容的情况下呈现。
如何打印儿童姓名?
答案 0 :(得分:0)
{Binding .}
是否有效?我从未见过它(当然这并不意味着它不正确)。我只想使用{Binding}
。如果这不起作用,那么您可以尝试将string[]
更改为ObservableCollection<string>
,并使绑定成为双向绑定:ItemsSource="{Binding ChildNames, Mode=TwoWay}"
。
如果没有看到完整的源代码,我实际上无法提供更多帮助。