2014-09-11 2 views
0

GridView의 ItemTemplate에 ListView을 사용하고 있습니다. 문제는 필요한대로만큼만 공간을 사용하는 대신, 내가 사용할 수있는 수직 공간을 채우기 위해 목록보기 내부의 텍스트 상자를 얻을 수있다 : enter image description hereListView의 항목이 올바르게 늘어나지 않습니다.

왜 내가 설정 한 VerticalAlignment="Stretch"을 무시

?

<ListView Margin="0,0,0,0" 
    Width="200" 
    SelectionMode="None"> 
     <ListView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <VirtualizingStackPanel Orientation="Vertical"/> 
      </ItemsPanelTemplate> 
     </ListView.ItemsPanel> 
     <ListView.ItemContainerStyle> 
      <Style TargetType="ListViewItem"> 
       <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
      </Style> 
     </ListView.ItemContainerStyle> 
     <ComboBox> 
      <ComboBoxItem Tag="1" Content="1"/> 
     </ComboBox> 
     <TextBox AcceptsReturn="True" VerticalAlignment="Stretch" TextWrapping="Wrap" Text="Should fill everything" /> 
    </ListView> 

답변

1

당신은이 방법으로 GridLayout과에있는 ListView를 추가해야한다

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

    <ComboBox Grid.Row="0" .... /> 
    <ListView Grid.Row="1" .... /> 
</Grid> 
+0

은 제가 이미 그리드를 사용하는 경우 때문에 난 그냥 수, ListView에의 유용성에 대해 조금 궁금합니다 전체 그리드와 함께 가라. 그러나 잘 작동했다. – Voo

+0

Grid가 DataGrid가 아닙니다. Grid는 Panel 요소입니다. 그 목적은 보유하고있는 요소의 렌더링을 제어하는 ​​것입니다 (http://msdn.microsoft.com/it-it/library/ms754152(v=vs.110).aspx). 대신 ListView는 데이터 요소를 표시 할 수 있습니다. – rPulvi

관련 문제