2014-11-24 59 views
2

当缺少我有此XAML代码:ListView的第一个项目结合宽度

<ListView Name="MyList" ItemsSource="{Binding MyItems}" 
     ScrollViewer.HorizontalScrollMode="Disabled" > 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <Grid Width="{Binding ElementName=MyList, Path=ActualWidth}"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*"/> 
         <ColumnDefinition Width="100"/> 
         <ColumnDefinition Width="50"/> 
        </Grid.ColumnDefinitions> 
        <StackPanel Orientation="Vertical" Grid.Column="0" Grid.ColumnSpan="2" > 
         <TextBlock Text="{Binding aaa}" /> 
         <TextBlock Text="{Binding bbb}" /> 
         <TextBlock Text="{Binding ccc}" 
          TextWrapping="WrapWholeWords" TextTrimming="WordEllipsis" Height="25" MaxHeight="25" Margin="0,0,10,0" /> 
        </StackPanel> 
        <TextBlock Grid.Column="1" Style="{StaticResource ListTitle}" Text="{Binding restaDaPagare}" 
            HorizontalAlignment="Right" Margin="0,0,10,0" /> 
        <Canvas Grid.Column="2" Height="50" Width="50" Background="{StaticResource GrayBrush}"></Canvas> 
        <Image Grid.Column="2" Source="/Images/img.png" 
            Height="50" Width="50" MinHeight="50" MinWidth="50"/> 
       </Grid> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

对于某些原因,如果我使用该指令(第5行):

<Grid Width="{Binding ElementName=MyList, Path=ActualWidth}"> 

MYLIST的第一项消失。 如果我用这个代码:

<Grid Width="400"> 

一切正常......只是我不想用一个静态的宽度。 感谢您的帮助!

+0

“采取”有谁知道_why_结合宽度是否这样? – BlackICE 2016-08-04 14:40:37

回答

3

你可以试试不设置任何宽度的网格(在你的模板),并添加到您的ListView

<ListView.ItemContainerStyle> 
    <Style TargetType="ListViewItem"> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
    </Style> 
</ListView.ItemContainerStyle> 

这个想法是从这个question

+0

非常感谢...这工作!我可能错过了你接受这个想法的反应,因为它没有windows phone标签。 – ful03 2014-11-25 10:52:12