0

我有一组可观察的集合,我想在一个列表框中显示所有这些集合。每个集合中的数据都属于同一类型,并且已根据特定类别进行了分离。

所以我的问题是,列表框的 DataTemplate 是否可以包含列表框?

4

1 回答 1

1

是的,例如,Xaml:

<UserControl x:Class="SilverlightApplication1.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300">
    <Grid x:Name="LayoutRoot" Background="White">
        <ListBox ItemsSource="{Binding }">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel >
                        <TextBlock Text="{Binding Name}" />
                        <ListBox ItemsSource="{Binding InnerList}">
                            <TextBlock Text="{Binding }" />
                        </ListBox>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Grid>
</UserControl>

编码:

using System.Collections.Generic;
using System.Windows.Controls;

namespace SilverlightApplication1
{
    public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();
            this.DataContext = new List<Data>() 
            { 
                new Data(){Name = "First"},
                new Data(){Name = "Second"},
                new Data(){Name = "Third"},
                new Data(){Name = "FourthWithDifferentData", InnerList=new List<string>(){"a", "b", "c"}}
            };
        }
    }
}

public class Data
{
    public List<string> InnerList { get; set; }
    public string Name { get; set; }
    public Data()
    {
        InnerList = new List<string>(){"String1", "String2", "String3"};
    }
}
于 2009-07-12T12:41:59.123 回答