2015-07-12 72 views
0

我花了很長時間試圖找出如何讓滾動條與數據列表的工作:不能得到滾動條出現時的ItemSource模板填充

<Grid Grid.Row="1"> 
      <ItemsControl ItemsSource="{Binding AllItems}" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.CanContentScroll="True"> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <Grid VerticalAlignment="Center" Margin="0,6,0,0" > 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition/> 
           <ColumnDefinition Width="150"/> 
          </Grid.ColumnDefinitions> 
           <TextBox Width="Auto" Margin="18,0,0,0" 
            Text="{Binding ItemsProp1}" 
            IsReadOnly="True"/> 
          <ComboBox HorizontalAlignment="Left" VerticalAlignment="Top" Width="120" Grid.Column="1" 
             IsReadOnly="True" 
             ItemsSource="{Binding ItemsProp2}" 
             SelectedItem="{Binding ItemsProp3}" Margin="6,0,0,0"/> 
         </Grid> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 
     </Grid> 

我見過的例子使用ItemTemplate而不是DataTemplate,所以我甚至不確定是否可以使用DataTemplate。

我試過向網格中添加一個scrollviewer,並沒有工作。我也試着在ItemsControl元素上面定義一個scrollviewer。當滾動出現時,它仍然不實際滾動。

回答

0

如果要添加一個ScrollViewer到您的模板Grid那麼你將它添加到各個項目,而不是列表作爲一個整體。

最簡單的辦法是包裝在ScrollViewer列表本身:

<ScrollViewer> 
    <ItemsControl> 
     ..... 
    </ItemsControl> 
</ScrollViewer> 
+0

感謝您的答覆。我提到我也試過這樣做,但滾動條不起作用..我不知道它是否與網格的高度有關 – maria

+0

由於不起作用,我的意思是scrollviewer可見,我的數據消失屏幕和我不能實際滾動。 – maria

+0

我需要設置scrollviewer的最大高度-_- – maria