2013-05-14 47 views
0

我有一個包含listview的邊框,在我的c#代碼中,邊框的高度根據值更改。現在邊框高度改變沒有問題,但我怎麼能更新列表視圖具有相同的高度作爲邊界?這裏是我的xml:正在更新列表視圖高度以填充新表單內容(c#)

<DataTemplate x:Key="PackageTemplate"> 
     <Border x:Name="PackageBorder" BorderBrush="Black" BorderThickness="2" Margin="10" Padding="0" Width="100" > 
      <Border.Style> 
       <Style> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding Path=Status}" Value="1"> 
          <Setter Property="Border.Background" Value="#FF999696"/> 
         </DataTrigger> 
         <DataTrigger Binding="{Binding Path=Status}" Value="0"> 
          <Setter Property="Border.Background" Value="#FFE4E4E4"/> 
         </DataTrigger> 
         <DataTrigger Binding="{Binding Path=Layout}" Value="0"> 
          <Setter Property="Border.Height" Value="100"/> 
         </DataTrigger> 
         <DataTrigger Binding="{Binding Path=Layout}" Value="1"> 
          <Setter Property="Border.Height" Value="200"/> 
         </DataTrigger> 
        </Style.Triggers>       
       </Style> 
      </Border.Style> 
      <Grid> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="70"/> 
        <RowDefinition Height="*"/> 
       </Grid.RowDefinitions> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="Auto"/> 
       </Grid.ColumnDefinitions> 

       <ListView Grid.Row="0" Grid.Column="0" Background="{x:Null}" x:Name="List" ItemsSource="{Binding Path=Collection}" ItemTemplate="{DynamicResource ChipTemplate}" 
          ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" BorderThickness="0" BorderBrush="{x:Null}" Foreground="Black" VerticalAlignment="Top" Width="90" > 
        <ListView.ItemsPanel> 
         <ItemsPanelTemplate> 
          <WrapPanel Orientation="Horizontal" VerticalAlignment="Center" /> 
         </ItemsPanelTemplate> 
        </ListView.ItemsPanel> 
       </ListView> 

       <Label Grid.Row="1" Grid.Column="0" Content="{Binding Path=Location}" FontSize="15" FontFamily="Arial" Foreground="Black" Background="{x:Null}" VerticalAlignment="Bottom" HorizontalAlignment="Left"></Label>     
      </Grid> 
     </Border>    
    </DataTemplate> 

回答

2

Xaml您已設置的ListView的高度,以70通過設置<RowDefinition Height="70"/>,寬度爲90,該ListView不會得到任何更大然後,你將需要設置<RowDefinition Height="70*"/>允許它增加高度並移除寬度=「90」,或者使用DockPanel

<DockPanel> 
     <Label DockPanel.Dock="Bottom" Content="{Binding Path=Location}" FontSize="15" FontFamily="Arial" Foreground="Black" /> 
     <ListView x:Name="List" ItemsSource="{Binding Path=Collection}" ItemTemplate="{DynamicResource ChipTemplate}" 
         ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" BorderThickness="0" BorderBrush="{x:Null}" Foreground="Black" > 
      <ListView.ItemsPanel> 
       <ItemsPanelTemplate> 
        <WrapPanel Orientation="Horizontal" VerticalAlignment="Center" /> 
       </ItemsPanelTemplate> 
      </ListView.ItemsPanel> 
     </ListView> 
    </DockPanel>