2016-09-11 1 views
0

Im folgenden Beispiel versteht das ListView-Steuerelement die Breite des übergeordneten Containers RelativePanel. Wenn man das Layout im Designer anschaut, wird deutlich, dass das ListView die volle Breite des RelativePanel ausfüllt. Auch wenn das RelativePanel in der DataTemplate ebenfalls die Breite des Parent angibt, ignoriert es die Optionen "linkes ausrichten" und "rechts ausrichten". Ich kann keine Möglichkeit finden, die Größe des übergeordneten Containers zu erkennen.Wie erhält man ein UWP DataTemplate, um die Größe von ListView zu verwenden?

Alle Vorschläge hier würden geschätzt.

  <RelativePanel RelativePanel.AlignLeftWithPanel="True" 
          RelativePanel.AlignRightWithPanel="True"> 
       <ListView Name="LstOrders" ItemsSource="{x:Bind Vm.OrdersList, Mode=OneWay}" 
          SelectionMode="None" 
          RelativePanel.AlignLeftWithPanel="True" 
          RelativePanel.AlignRightWithPanel="True" 
          Margin="0,5,0,0"> 
        <ListView.ItemTemplate> 
         <DataTemplate x:DataType="genericOrder:OrderThumbnailVm"> 
          <RelativePanel Name="PanelThumbnail" Margin="0,0,20,0"> 
           <RelativePanel Name="PanelOrderDetails" 
               Background="BlueViolet" 
               RelativePanel.AlignLeftWithPanel="True" 
               RelativePanel.AlignRightWithPanel="True"> 
            <TextBlock Text="{x:Bind Name}" Margin="8,0,0,0" VerticalAlignment="Center" 
               Foreground="{x:Bind Deleted, Mode=OneWay, Converter={StaticResource DeletedColor}}" 
               TextWrapping="WrapWholeWords" 
               RelativePanel.AlignLeftWithPanel="True" 
               RelativePanel.LeftOf="BtnDeleteRestore"/> 
            <Button Name="BtnDeleteRestore" 
              Content="{x:Bind DisplayDelete, Mode=OneWay}" 
              Click="{x:Bind DeleteOrder}" 
              RelativePanel.AlignRightWithPanel="True" 
              FontSize="10" 
              Height="20" 
              Padding="0" 
              Visibility="{x:Bind ShowDeleteButton, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"/> 
           </RelativePanel> 
          </RelativePanel> 
         </DataTemplate> 
        </ListView.ItemTemplate> 
       </ListView> 
      </RelativePanel> 

Antwort

2

Das heißt, da der Wert von HorizontalContentAlignment von ListViewItemLeft ist, müssen wir es außer Kraft zu setzen und es Stretch zu machen. Sie können es in der ListViewItem styles and templates finden.

Um dieses Problem zu lösen, wie gesagt, müssen wir seinen Stil, zum Beispiel wie dies außer Kraft zu setzen:

<ListView> 
     <ListView.ItemContainerStyle> 
      <Style TargetType="ListViewItem"> 
       <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
      </Style> 
     </ListView.ItemContainerStyle> 
     <ListView.ItemTemplate> 
      <DataTemplate > 
       <RelativePanel> 
        ... 
       </RelativePanel> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
</ListView> 
+0

Brilliant! Klappt wunderbar! Ich habe fast alles versucht, außer den Container-Stil zu setzen. –

Verwandte Themen