2014-11-24 52 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