问题描述
|
在Silverlight中,我试图构建报告列表框,并且试图在外部报告列表框的数据模板内的列表框中显示报告的参数。
以下是数据类:
public class Report
{
public string Title { get; set; }
public string Description { get; set; }
public List<ReportParameter> Parameters = new List<ReportParameter>();
}
public class ReportParameter
{
public string Name { get; set; }
public string ParameterType { get; set; }
public bool required { get; set; }
}
这是我正在尝试使用的XAML:
<ListBox x:Name=\"lstReports\">
<ListBox.ItemTemplate>
<DataTemplate>
<Border>
<StackPanel>
<TextBlock Text=\"{Binding Title}\"/>
<ListBox ItemsSource=\"{Binding Parameters}\" Height=\"60\" Width=\"60\">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text=\"{Binding Name}\"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
报表标题的绑定有效,但是每个报表的内部列表框为空。
将填充“参数”列表。
我究竟做错了什么?
谢谢!
解决方法
您的\“ Parameters \”列表是一个公共字段,而不是属性,silverlight只能绑定到属性,而不能绑定到字段。尝试将您的班级更改为此:
public class Report
{
public Report()
{
Parameters = new List<ReportParameter>();
}
public string Title { get; set; }
public string Description { get; set; }
public List<ReportParameter> Parameters { get; set; }
}
这应该按照您想要的方式工作。