2009-03-18 16 views
7

Jestem nowy w rozwoju WPF, mam ListView i chcę zablokować wiersz nagłówka, aby nie przewijał ekran, gdy użytkownik przewija listę. Kod XAML, mam dziedziczone, wygląda mniej więcej tak:WPF: Jak zablokować wiersz nagłówka ListView, aby nie przewijał ekranu?

<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> 
    <DockPanel> 
    <forms:BindableGrid DockPanel.Dock="Top" [code snipped] > 
    <ListView.View> 
     <GridView> 
     <GridViewColumn Header="ColA" DisplayMemberBinding="{Binding ColA}" /> 
     <GridViewColumn Header="ColB" DisplayMemberBinding="{Binding ColB}" /> 
      [etc] 

Odpowiedz

11

ListView już to robi - to ma wewnętrzną ScrollViewer że tylko Przewija pozycje i nie nagłówku.

Problem jest to, że zewnętrzna ScrollViewer opowiada swoje dziecko (The DockPanel) że nieskończona przestrzeń dostępna, a DockPanel mówi to do swoich dzieci, więc ListView kończy się podjęciem tyle miejsca, ile potrzebuje, aby wyświetlić wszystkie elementy i wewnętrzny ScrollViewer nie pojawiają się.

Jeśli usuniesz zewnętrzną wersję ScrollViewer, ListView powinien odebrać ograniczoną przestrzeń, a wewnętrzny ScrollViewer pojawi się.

To oczywiście wpłynie na resztę rzeczy w twoim DockPanel, więc zobaczę, co się stanie i wyjdę stąd.

+0

Fantastyczne! To naprawiło, dziękuję. – hamishmcn

+0

Genialny. Właśnie podpowiedź potrzebowałem dostać ListView wystawę w sposób, który chciałem. Nie potrzebujesz scrollviewera w takich sytuacjach ... – AndyUK

Powiązane problemy