Silverlight - 绑定列表框模板中的列表框

时间:2011-05-25 13:50:41

标签: silverlight xaml binding listbox

在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>

报告标题的绑定有效,但每个报告的内部列表框都是空的。

填充参数列表。

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

您的“参数”列表是公共字段属性,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; }
}

这应该按你想要的方式工作。