Wpf 带有嵌入式扩展器的自定义ListViewItem

Wpf 带有嵌入式扩展器的自定义ListViewItem,wpf,controltemplate,listviewitem,expander,Wpf,Controltemplate,Listviewitem,Expander,我正在创建一个简单的文件浏览器,它的显示将模仿Windows(7)资源管理器的“内容”显示模式。我设想一个ListView控件,其ItemsSource将绑定到一组FileSystemInfo对象。每个ListViewItems都将显示文件名、上次修改的日期/时间等。但是,我也希望它们有一个扩展器,当用户单击它时,它将垂直扩展以显示文件的内容 下面是我用Expression Blend创建的XAML代码。这是我想要的ListViewItem的常规模板。但是,扩展器不会使边框的垂直高度向外扩展,以

我正在创建一个简单的文件浏览器,它的显示将模仿Windows(7)资源管理器的“内容”显示模式。我设想一个ListView控件,其ItemsSource将绑定到一组FileSystemInfo对象。每个ListViewItems都将显示文件名、上次修改的日期/时间等。但是,我也希望它们有一个扩展器,当用户单击它时,它将垂直扩展以显示文件的内容

下面是我用Expression Blend创建的XAML代码。这是我想要的ListViewItem的常规模板。但是,扩展器不会使边框的垂直高度向外扩展,以匹配扩展器网格内容所需的额外空间(在本例中,ScrollViewer的高度为500,显然每个文件可能根据内容具有不同的尺寸--图像、纯文本等)

那么,我做错了什么?此外,我想知道ListView控件是否会通过使其项元素垂直展开/收缩来正常工作

这是我希望用于ListItemView的控制模板:

<Border BorderBrush="Black" BorderThickness="1" Background="Beige">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="0.5*"/>
                <RowDefinition Height="0.5*"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.25*"/>
                <ColumnDefinition Width="0.50*"/>
                <ColumnDefinition Width="0.25*"/>
            </Grid.ColumnDefinitions>
            <Image Grid.RowSpan="2"/>
            <TextBlock Grid.Column="1" HorizontalAlignment="Left" TextWrapping="Wrap" Text="FileName" d:LayoutOverrides="Height" VerticalAlignment="Center"/>
            <TextBlock Grid.Column="1" Grid.Row="1" TextWrapping="Wrap" Text="FileType" d:LayoutOverrides="Width, Height" VerticalAlignment="Center"/>
            <TextBlock Grid.Column="2" TextWrapping="Wrap" Text="DateTime Last Modified" VerticalAlignment="Center" d:LayoutOverrides="Width" Grid.RowSpan="2" HorizontalAlignment="Center"/>
            <Expander Header="Expander" d:LayoutOverrides="Width" Grid.ColumnSpan="3" Grid.Row="2">
                <Grid>
                    <ScrollViewer Content="File Contents" Height="500"/>
                </Grid>
            </Expander>
        </Grid>
    </Border>


我不明白,我复制了您的XAML并将其粘贴到示例应用程序中,而扩展器工作正常。你到底有什么问题?我希望扩展器向下扩展,增加整个控件的总高度以容纳ScrollViewer。例如,假设ListViewItem的高度为200。扩展器在ScrollViewer中可能有一个高度为500的JPEG图像。单击扩展器时,我希望ListViewItem扩展到700(200+500)的高度。我的代码没有这样做。ListViewItem保持在200,扩展程序只是覆盖控件的其他元素。