0

Windows(7)エクスプローラーの「コンテンツ」表示モードの表示を模倣する単純なファイルブラウザーを作成しています。私は、ItemsSource が FileSystemInfo オブジェクトのコレクションにバインドされる ListView コントロールを想定しています。各 ListViewItems には、ファイル名、最終変更日時などが表示されます。ただし、ユーザーがクリックすると垂直方向に展開してファイルの内容を表示する Expander も必要です。

以下は、私が Expression Blend で作成した XAML コードです。これは、私が ListViewItem にしたいものの一般的なテンプレートです。ただし、エキスパンダーは、エキスパンダーのグリッド コンテンツ (この例では高さ 500 の ScrollViewer) に必要な追加スペースに一致するようにボーダーの垂直方向の高さを拡張しません。 -- 画像、プレーンテキストなど)。

それで、私はここで何が間違っていますか?さらに、Item 要素を垂直方向に伸縮させることで、ListView コントロールが適切に動作するかどうか疑問に思っています。

これは、ListItemView に使用したい ControlTemplate です。

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

0 に答える 0