4

データグリッド、グリッドスプリッター、およびいくつかのメッセージを含む下部パネルを使用してビューを設計しようとしています。何かのようなもの:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="10"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <toolkit:DataGrid Grid.Row="0" {details...} />
    <GridSplitter Grid.Row="1" {details...} />
    <TextBox Grid.Row="2" {details...} />
</Grid>

このレイアウトは完璧に見えます。グリッドがビューの大部分を占めており、必要に応じて下部のテキスト ボックスを拡大するスプリッターがあります。問題は、Datagrid が非常に大きくなり、仮想化を有効にする必要があることです。これは、グリッドのコンテナーに明示的な高さが指定されている場合にのみ機能します。

必要なレイアウト (グリッドが利用可能なすべてのスペースを埋める) を取得する方法はありますが、仮想化も有効にしていますか?

4

1 に答える 1

2

必要なレイアウト (グリッドが利用可能なすべてのスペースを埋める) を取得する方法はありますが、仮想化も有効にしていますか?

グリッドの親が垂直方向に無限に測定していない限り、仮想化はあなたが説明したシナリオでうまく機能するはずです。その場合、スプリッターは機能しません。

DataGrid 内の行が仮想化されていないことをどのように判断していますか?

シナリオでは、DataGrid に明示的な高さがあることに注意してください。より具体的には、親 Grid は引き続き DataGrid を明示的な高さ (他の行を考慮した後に Grid に残っている垂直方向のスペース) まで測定します。

于 2010-02-11T09:57:36.743 に答える