2013-01-21 73 views
0

我正在使用VS 2010.我想僅在網格鼠標上顯示Datagrid標題。我寫了下面的代碼,但它不起作用。動態顯示/隱藏WPF DataGrid標題列

<StackPanel> 
    <DataGrid ItemsSource="{Binding SelectedItemsCollectionView}" 
     AutoGenerateColumns="False" CellStyle="{StaticResource CellStyle}" 
     GridLinesVisibility="None" RowHeight="28" HeadersVisibility="None" 
     ClipToBounds="True" AllowDrop="True" > 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding Path=DisplaySequence}"/> 
     </DataGrid.Columns> 
     <DataGrid.Style> 
      <Style TargetType="DataGrid"> 
       <Setter Property="HeadersVisibility" Value="None" /> 
       <Style.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="HeadersVisibility" Value="Column" /> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </DataGrid.Style> 
    </DataGrid> 
</StackPanel> 

有什麼建議嗎?

謝謝!

回答

2

只需在DataGrid標籤中刪除HeadersVisibility =「None」即可。它的工作正常。

HeadersVisibility是一個依賴項屬性。它們具有值解析策略。 與觸發值相比,本地值的優先級更高。

enter image description here

來源。詳情see here

+0

非常感謝!它的工作。但不知道沒有使用早期代碼工作的技術原因是什麼。 – Sambhaji

+1

@Sambhaji當你明確地設置一個屬性時,樣式中的setter不起作用。 HeadersVisibility =「None」的優先級高於 jan

+0

謝謝。現在很清楚! – Sambhaji