2010-06-15 32 views

回答

3

我還沒有嘗試過這一點,但你可以包括你的組頭裏面GridViewHeaderRowPresenters:

<GridViewHeaderRowPresenter 
    DataContext="{Binding View, RelativeSource={RelativeSource FindAncestor,ListView,1}}" 
    Columns="{Binding Columns}" 
    ColumnHeaderContainerStyle="{Binding ColumnHeaderContainerStyle}" 
    ColumnHeaderTemplate="{Binding ColumnHeaderTemplate}" 
    ColumnHeaderTemplateSelector="{Binding ColumnHeaderTemplateSelector}" 
    AllowsColumnReorder="{Binding AllowsColumnReorder}" 
    ColumnHeaderContextMenu="{Binding ColumnHeaderContextMenu}" 
    ColumnHeaderToolTip="{Binding ColumnHeaderToolTip}" 
    SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> 

如果不起作用,一個安全可靠的方式來做到這一點是添加使用VisualBrush繪製的矩形可引用GridView頂部的一個且僅有的GridViewHeaderRowPresenter。

這可以通過在矩形上使用附加屬性來完成。當連接的屬性設置,它會註冊一個低優先級調度回調:

  1. 掃描了可視化樹到ListView
  2. 搜索,直到它找到GridViewHeaderRowPresenter
  3. 構建一個VisualBrush,並將其設置填充的矩形,並

的矩形本身將是這樣的:

<Rectangle HorizontalAlignment="Stretch" 
      Height="{Binding Fill.Visual.RenderHeight}" 
      my:GridViewHeaderHelper.SearchForHeaderRowPresenterAndSetFill="True" /> 
+0

雷,非常感謝你,這是完美的!從答案中,你不可能要求太多,我將XAML複製到了我的組風格中,並且馬上就可以工作。質量。 順便說一句,我很高興在我的組頭中使用GridViewHeaderRowPresenter取得了訣竅,因爲您提供的第二個解決方案似乎相當多涉及... – Riko 2010-06-16 09:18:41